Nmap Development mailing list archives

[PATCH] Use geteuid() and "isr00t" in NmapFE


From: Kris Katterjohn <kjak () ispwest com>
Date: Fri, 22 Sep 2006 10:02:19 -0500

The attached patch uses geteuid() instead of getuid() when checking
privileges, and changes 'guint uid' to 'gboolean isr00t' for testing
root privileges because IMO it's simpler and more like the "core" nmap.

It's a diff against 4.20ALPHA7. I tested applying it with and without
that other NmapFE patch I sent the other day and it works before and after.

Thanks,
Kris Katterjohn
--- x/nmapfe/nmapfe.c   2006-08-24 20:47:59.000000000 -0500
+++ y/nmapfe/nmapfe.c   2006-09-22 09:45:12.000000000 -0500
@@ -428,7 +428,6 @@ GtkAdjustment *adjust;
   /* initialize our options */
   opt.viewValue = 1;
   opt.appendLog = FALSE;
-  opt.uid = 0;
   opt.scanValue = SYN_SCAN;
   opt.throttleValue = NORMAL_THROTTLE;
   opt.resolveValue = DEFAULT_RESOLVE;
@@ -437,12 +436,12 @@ GtkAdjustment *adjust;
   opt.outputFormatValue = NORMAL_OUTPUT;
 
 #ifdef WIN32
-  opt.uid = 0;
+  opt.isr00t = 1;
   /* for nmap version */
 #include "nmap_winconfig.h"
 #define VERSION NMAP_VERSION
 #else
-  opt.uid = getuid();
+  opt.isr00t = !geteuid();
 #endif
 
 /* main (toplevel) window */
@@ -552,11 +551,11 @@ GtkAdjustment *adjust;
       GtkCellRenderer *renderer;
       GtkTreeModel    *model;
       model = create_dropdown_store (scanentries, 
-              (opt.uid == 0) ? TRUE : FALSE);
+              opt.isr00t ? TRUE : FALSE);
       opt.scanType = gtk_combo_box_new_with_model (model);
       g_object_unref (model);
 
-      opt.scanValue = (opt.uid == 0) ? SYN_SCAN : CONNECT_SCAN;
+      opt.scanValue = opt.isr00t ? SYN_SCAN : CONNECT_SCAN;
 
       gtk_table_attach_defaults (GTK_TABLE(table), opt.scanType, 0, 4, 0, 1);
       gtk_widget_show (opt.scanType);
@@ -658,7 +657,7 @@ GtkAdjustment *adjust;
   opt.OSInfo = gtk_check_button_new_with_label("OS Detection");
   g_signal_connect(GTK_OBJECT(opt.OSInfo), "released",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if (opt.uid == 0)
+  if (opt.isr00t)
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(opt.OSInfo), TRUE);
   else
     gtk_widget_set_sensitive(GTK_WIDGET(opt.OSInfo), FALSE);
@@ -710,7 +709,7 @@ GtkAdjustment *adjust;
   g_signal_connect(GTK_OBJECT(opt.icmpechoPing), "released",
                     GTK_SIGNAL_FUNC(pingButton_toggled_cb), opt.icmpechoPing);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.icmpechoPing, 0, 1, 0, 1);
-  if (opt.uid == 0)
+  if (opt.isr00t)
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(opt.icmpechoPing), TRUE);
   else
     gtk_widget_set_sensitive(GTK_WIDGET(opt.icmpechoPing), FALSE);
@@ -720,7 +719,7 @@ GtkAdjustment *adjust;
   opt.icmptimePing = gtk_check_button_new_with_label("ICMP Timestamp");
   g_signal_connect(GTK_OBJECT(opt.icmptimePing), "released",
                     GTK_SIGNAL_FUNC(pingButton_toggled_cb), opt.icmptimePing);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.icmptimePing), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.icmptimePing, 0, 1, 1, 2);
   gtk_widget_show(opt.icmptimePing);
@@ -729,7 +728,7 @@ GtkAdjustment *adjust;
   opt.icmpmaskPing = gtk_check_button_new_with_label("ICMP Netmask");
   g_signal_connect(GTK_OBJECT(opt.icmpmaskPing), "released",
                     GTK_SIGNAL_FUNC(pingButton_toggled_cb), opt.icmpmaskPing);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.icmpmaskPing), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.icmpmaskPing, 0, 1, 2, 3);
   gtk_widget_show(opt.icmpmaskPing);
@@ -758,13 +757,13 @@ GtkAdjustment *adjust;
   opt.synPing = gtk_check_button_new_with_label("TCP SYN Ping");
   g_signal_connect(GTK_OBJECT(opt.synPing), "released",
                     GTK_SIGNAL_FUNC(pingButton_toggled_cb), opt.synPing);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.synPing), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.synPing, 1, 2, 1, 2);
   gtk_widget_show(opt.synPing);
 
   opt.synPingLabel = gtk_label_new("Port(s):");
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.synPing)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.synPing)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.synPingLabel), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.synPingLabel, 2, 3, 1, 2);
   gtk_widget_show(opt.synPingLabel);
@@ -774,7 +773,7 @@ GtkAdjustment *adjust;
   /*gtk_object_set(GTK_OBJECT(opt.synPingPorts), "width", 100, NULL);*/
   g_signal_connect(GTK_OBJECT(opt.synPingPorts), "changed",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if ((opt.uid != 0)  || (! GTK_TOGGLE_BUTTON(opt.synPing)->active))
+  if ((!opt.isr00t)  || (! GTK_TOGGLE_BUTTON(opt.synPing)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.synPingPorts), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.synPingPorts, 3, 4, 1, 2);
   gtk_widget_show(opt.synPingPorts);
@@ -783,13 +782,13 @@ GtkAdjustment *adjust;
   opt.udpPing = gtk_check_button_new_with_label("UDP Ping");
   g_signal_connect(GTK_OBJECT(opt.udpPing), "released",
                     GTK_SIGNAL_FUNC(pingButton_toggled_cb), opt.udpPing);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.udpPing), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.udpPing, 1, 2, 2, 3);
   gtk_widget_show(opt.udpPing);
 
   opt.udpPingLabel = gtk_label_new("Port(s):");
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.udpPing)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.udpPing)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.udpPingLabel), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.udpPingLabel, 2, 3, 2, 3);
   gtk_widget_show(opt.udpPingLabel);
@@ -799,7 +798,7 @@ GtkAdjustment *adjust;
   /*gtk_object_set(GTK_OBJECT(opt.udpPingPorts), "width", 100, NULL);*/
   g_signal_connect(GTK_OBJECT(opt.udpPingPorts), "changed",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.udpPing)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.udpPing)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.udpPingPorts), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.udpPingPorts, 3, 4, 2, 3);
   gtk_widget_show(opt.udpPingPorts);
@@ -846,7 +845,7 @@ GtkAdjustment *adjust;
 
 
   opt.ipv4Ttl = gtk_check_button_new_with_label("IPv4 TTL");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.ipv4Ttl), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.ipv4Ttl, 0, 1, 2, 3);
   gtk_widget_show(opt.ipv4Ttl);
@@ -859,14 +858,14 @@ GtkAdjustment *adjust;
   /*  gtk_object_set(GTK_OBJECT(opt.ipv4TtlValue), "width", 55, NULL);*/
   g_signal_connect(GTK_OBJECT(opt.ipv4TtlValue), "changed",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.ipv4Ttl)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.ipv4Ttl)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.ipv4TtlValue), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.ipv4TtlValue, 1, 2, 2, 3);
   gtk_widget_show(opt.ipv4TtlValue);
 
 
   opt.minPar = gtk_check_button_new_with_label("Min. Parallel");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.minPar), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.minPar, 0, 1, 3, 4);
   gtk_widget_show(opt.minPar);
@@ -879,14 +878,14 @@ GtkAdjustment *adjust;
                     GTK_SIGNAL_FUNC(toggle_button_set_sensitive_cb), opt.minParSocks);
   g_signal_connect(GTK_OBJECT(opt.minParSocks), "changed",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.minPar)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.minPar)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.minParSocks), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.minParSocks, 1, 2, 3, 4);
   gtk_widget_show(opt.minParSocks);
 
 
   opt.maxPar = gtk_check_button_new_with_label("Max. Parallel");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.maxPar), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.maxPar, 0, 1, 4, 5);
   gtk_widget_show(opt.maxPar);
@@ -899,14 +898,14 @@ GtkAdjustment *adjust;
                     GTK_SIGNAL_FUNC(toggle_button_set_sensitive_cb), opt.maxParSocks);
   g_signal_connect(GTK_OBJECT(opt.maxParSocks), "changed",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.maxPar)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.maxPar)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.maxParSocks), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.maxParSocks, 1, 2, 4, 5);
   gtk_widget_show(opt.maxParSocks);
 
 
   opt.startRtt = gtk_check_button_new_with_label("Initial RTT");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.startRtt), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.startRtt, 2, 3, 0, 1);
   gtk_widget_show(opt.startRtt);
@@ -919,20 +918,20 @@ GtkAdjustment *adjust;
                     GTK_SIGNAL_FUNC(toggle_button_set_sensitive_cb), opt.startRttTime);
   g_signal_connect(GTK_OBJECT(opt.startRttTime), "changed",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.startRtt)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.startRtt)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.startRttTime), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.startRttTime, 3, 4, 0, 1);
   gtk_widget_show(opt.startRttTime);
 
   label = gtk_label_new("ms");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), label, 4, 5, 0, 1);
   gtk_widget_show(label);
 
 
   opt.minRtt = gtk_check_button_new_with_label("Min. RTT");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.minRtt), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.minRtt, 2, 3, 1, 2);
   gtk_widget_show(opt.minRtt);
@@ -945,20 +944,20 @@ GtkAdjustment *adjust;
                     GTK_SIGNAL_FUNC(toggle_button_set_sensitive_cb), opt.minRttTime);
   g_signal_connect(GTK_OBJECT(opt.minRttTime), "changed",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.minRtt)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.minRtt)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.minRttTime), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.minRttTime, 3, 4, 1, 2);
   gtk_widget_show(opt.minRttTime);
 
   label = gtk_label_new("ms");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), label, 4, 5, 1, 2);
   gtk_widget_show(label);
 
 
   opt.maxRtt = gtk_check_button_new_with_label("Max. RTT");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.maxRtt), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.maxRtt, 2, 3, 2, 3);
   gtk_widget_show(opt.maxRtt);
@@ -971,20 +970,20 @@ GtkAdjustment *adjust;
                     GTK_SIGNAL_FUNC(toggle_button_set_sensitive_cb), opt.maxRttTime);
   g_signal_connect(GTK_OBJECT(opt.maxRttTime), "changed",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.maxRtt)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.maxRtt)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.maxRttTime), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.maxRttTime, 3, 4, 2, 3);
   gtk_widget_show(opt.maxRttTime);
 
   label = gtk_label_new("ms");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), label, 4, 5, 2, 3);
   gtk_widget_show(label);
 
 
   opt.hostTimeout = gtk_check_button_new_with_label("Host Timeout");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.hostTimeout), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.hostTimeout, 2, 3, 3, 4);
   gtk_widget_show(opt.hostTimeout);
@@ -997,20 +996,20 @@ GtkAdjustment *adjust;
                     GTK_SIGNAL_FUNC(toggle_button_set_sensitive_cb), opt.hostTimeoutTime);
   g_signal_connect(GTK_OBJECT(opt.hostTimeoutTime), "changed",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.hostTimeout)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.hostTimeout)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.hostTimeoutTime), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.hostTimeoutTime, 3, 4, 3, 4);
   gtk_widget_show(opt.hostTimeoutTime);
 
   label = gtk_label_new("ms");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), label, 4, 5, 3, 4);
   gtk_widget_show(label);
 
 
   opt.scanDelay = gtk_check_button_new_with_label("Scan Delay");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.scanDelay), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.scanDelay, 2, 3, 4, 5);
   gtk_widget_show(opt.scanDelay);
@@ -1023,13 +1022,13 @@ GtkAdjustment *adjust;
                     GTK_SIGNAL_FUNC(toggle_button_set_sensitive_cb), opt.scanDelayTime);
   g_signal_connect(GTK_OBJECT(opt.scanDelayTime), "changed",
                     GTK_SIGNAL_FUNC(display_nmap_command_cb), NULL);
-  if ((opt.uid != 0) || (! GTK_TOGGLE_BUTTON(opt.scanDelay)->active))
+  if ((!opt.isr00t) || (! GTK_TOGGLE_BUTTON(opt.scanDelay)->active))
     gtk_widget_set_sensitive(GTK_WIDGET(opt.scanDelayTime), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.scanDelayTime, 3, 4, 4, 5);
   gtk_widget_show(opt.scanDelayTime);
 
   label = gtk_label_new("ms");
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), label, 4, 5, 4, 5);
   gtk_widget_show(label);
@@ -1249,7 +1248,7 @@ GtkAdjustment *adjust;
   opt.useSourceDevice = gtk_check_button_new_with_label("Device");
   g_signal_connect(GTK_OBJECT(opt.useSourceDevice), "toggled",
                        GTK_SIGNAL_FUNC(validate_option_change), NULL);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.useSourceDevice), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.useSourceDevice, 0, 1, 0, 1);
   gtk_widget_show(opt.useSourceDevice);
@@ -1270,7 +1269,7 @@ GtkAdjustment *adjust;
   opt.useSourcePort = gtk_check_button_new_with_label("Port");
   g_signal_connect(GTK_OBJECT(opt.useSourcePort), "released",
                        GTK_SIGNAL_FUNC(validate_option_change), NULL);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.useSourcePort), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.useSourcePort, 0, 1, 1, 2);
   gtk_widget_show(opt.useSourcePort);
@@ -1291,7 +1290,7 @@ GtkAdjustment *adjust;
   opt.useSourceIP = gtk_check_button_new_with_label("IP");
   g_signal_connect(GTK_OBJECT(opt.useSourceIP), "released",
                        GTK_SIGNAL_FUNC(validate_option_change), NULL);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.useSourceIP), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.useSourceIP, 0, 1, 2, 3);
   gtk_widget_show(opt.useSourceIP);
@@ -1312,7 +1311,7 @@ GtkAdjustment *adjust;
   opt.useDecoy = gtk_check_button_new_with_label("Decoy");
   g_signal_connect(GTK_OBJECT(opt.useDecoy), "released",
                        GTK_SIGNAL_FUNC(validate_option_change), NULL);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.useDecoy), FALSE);
   gtk_table_attach_defaults(GTK_TABLE(table), opt.useDecoy, 0, 1, 3, 4);
   gtk_widget_show(opt.useDecoy);
@@ -1344,7 +1343,7 @@ GtkAdjustment *adjust;
   opt.useFragments = gtk_check_button_new_with_label("Fragmentation");
   g_signal_connect(GTK_OBJECT(opt.useFragments), "released",
                        GTK_SIGNAL_FUNC(validate_option_change), NULL);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.useFragments), FALSE);
   gtk_box_pack_start(GTK_BOX(vbox), opt.useFragments, FALSE, TRUE, 0);
   gtk_widget_show(opt.useFragments);
@@ -1353,7 +1352,7 @@ GtkAdjustment *adjust;
   opt.useIPv6 = gtk_check_button_new_with_label("IPv6");
   g_signal_connect(GTK_OBJECT(opt.useIPv6), "released",
                        GTK_SIGNAL_FUNC(validate_option_change), NULL);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.useIPv6), FALSE);
   gtk_box_pack_start(GTK_BOX(vbox), opt.useIPv6, FALSE, TRUE, 0);
   gtk_widget_show(opt.useIPv6);
@@ -1362,7 +1361,7 @@ GtkAdjustment *adjust;
   opt.useOrderedPorts = gtk_check_button_new_with_label("Ordered Ports");
   g_signal_connect(GTK_OBJECT(opt.useOrderedPorts), "released",
                        GTK_SIGNAL_FUNC(validate_option_change), NULL);
-  if (opt.uid != 0)
+  if (!opt.isr00t)
     gtk_widget_set_sensitive(GTK_WIDGET(opt.useOrderedPorts), FALSE);
   gtk_box_pack_start(GTK_BOX(vbox), opt.useOrderedPorts, FALSE, TRUE, 0);
   gtk_widget_show(opt.useOrderedPorts);

--- x/nmapfe/nmapfe.h   2006-08-24 20:47:59.000000000 -0500
+++ y/nmapfe/nmapfe.h   2006-09-22 09:01:22.000000000 -0500
@@ -229,7 +229,7 @@ struct NmapFEoptions {
   GtkWidget *commandEntry;
   gboolean appendLog;
   guint viewValue;
-  guint uid;
+  gboolean isr00t;
   /* scan types */
   GtkWidget *scanType;
   guint scanValue;

--- x/nmapfe/nmapfe_sig.c       2006-08-24 20:47:59.000000000 -0500
+++ y/nmapfe/nmapfe_sig.c       2006-09-22 09:45:08.000000000 -0500
@@ -183,9 +183,9 @@ main (int   argc, 
 
 #ifndef WIN32
     signal(SIGPIPE, SIG_IGN);
-    opt.uid = getuid();
+    opt.isr00t = !geteuid();
 #else
-    opt.uid = 0; /* With Windows (in general), every user is a Super User! */
+    opt.isr00t = 1; /* With Windows (in general), every user is a Super User! */
 #endif
 
     main_win = create_main_win();
@@ -193,7 +193,7 @@ main (int   argc, 
 
     gtk_text_buffer_get_end_iter (opt.buffer, &iter);
     gtk_text_buffer_insert_with_tags_by_name (opt.buffer, &iter, 
-            (opt.uid == 0)
+            (opt.isr00t)
             ? "You are root - All options granted."
             : "You are *NOT* root - Some options aren't available.", -1, 
             "normal", NULL);
@@ -716,7 +716,7 @@ void scanType_cb 
 
     j = gtk_combo_box_get_active(w);
 
-    if (opt.uid == 0) {
+    if (opt.isr00t) {
         k = j;
     } else {
         for (k = 0; user[k].scantype; k++) {
@@ -758,7 +758,7 @@ void scanType_cb 
     if ((opt.scanValue == CONNECT_SCAN) || (opt.scanValue == BOUNCE_SCAN)) {
       gtk_widget_set_sensitive(GTK_WIDGET(opt.useDecoy), FALSE);
       gtk_widget_set_sensitive(GTK_WIDGET(opt.Decoy), FALSE);
-    } else if (opt.uid == 0) {
+    } else if (opt.isr00t) {
       gtk_widget_set_sensitive(GTK_WIDGET(opt.useDecoy), TRUE);
       gtk_widget_set_sensitive(GTK_WIDGET(opt.Decoy), TRUE);
     }
@@ -768,7 +768,7 @@ void scanType_cb 
             (opt.scanValue != SYN_SCAN) && (opt.scanValue != NULL_SCAN) && 
             (opt.scanValue != XMAS_SCAN) && (opt.scanValue != WIN_SCAN))
       gtk_widget_set_sensitive(GTK_WIDGET(opt.useFragments), FALSE);
-    else if (opt.uid == 0)
+    else if (opt.isr00t)
       gtk_widget_set_sensitive(GTK_WIDGET(opt.useFragments), TRUE);
 
     if ((opt.scanValue == BOUNCE_SCAN) || (opt.scanValue == IDLE_SCAN)) {
@@ -800,7 +800,7 @@ gboolean status = gtk_toggle_button_get_
     gtk_widget_set_sensitive(GTK_WIDGET(opt.tcpPing), !status);
     gtk_widget_set_sensitive(GTK_WIDGET(opt.tcpPingLabel), localstatus);
     gtk_widget_set_sensitive(GTK_WIDGET(opt.tcpPingPorts), localstatus);
-    if (opt.uid == 0) {
+    if (opt.isr00t) {
       gtk_widget_set_sensitive(GTK_WIDGET(opt.icmpechoPing), !status);
       gtk_widget_set_sensitive(GTK_WIDGET(opt.icmpmaskPing), !status);
       gtk_widget_set_sensitive(GTK_WIDGET(opt.icmptimePing), !status);
@@ -820,11 +820,11 @@ gboolean status = gtk_toggle_button_get_
     gtk_widget_set_sensitive(GTK_WIDGET(opt.tcpPingLabel), status);
     gtk_widget_set_sensitive(GTK_WIDGET(opt.tcpPingPorts), status);
   }
-  else if ((ping_button == opt.synPing) && (opt.uid == 0)) {
+  else if ((ping_button == opt.synPing) && (opt.isr00t)) {
     gtk_widget_set_sensitive(GTK_WIDGET(opt.synPingLabel), status);
     gtk_widget_set_sensitive(GTK_WIDGET(opt.synPingPorts), status);
   }
-  else if ((ping_button == opt.udpPing) && (opt.uid == 0)) {
+  else if ((ping_button == opt.udpPing) && (opt.isr00t)) {
     gtk_widget_set_sensitive(GTK_WIDGET(opt.udpPingLabel), status);
     gtk_widget_set_sensitive(GTK_WIDGET(opt.udpPingPorts), status);
   }

_______________________________________________
Sent through the nmap-dev mailing list
http://cgi.insecure.org/mailman/listinfo/nmap-dev
Archived at http://SecLists.Org

Current thread: