s3-smbstatus: display [u|g]id of -1 as "-1" in connection list
authorBjörn Baumbach <bb@sernet.de>
Tue, 9 Jul 2013 10:32:34 +0000 (12:32 +0200)
committerJeremy Allison <jra@samba.org>
Tue, 9 Jul 2013 23:18:30 +0000 (01:18 +0200)
In order to avoid displayed uid or gid of "4294967295" instead of "-1", we
need to fetch the special case -1.
The id can be -1 if we are reading e.g. incomplete session information.

Signed-off-by: Björn Baumbach <bb@sernet.de>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Jul 10 01:18:30 CEST 2013 on sn-devel-104

source3/utils/status.c

index f4b5f4e2c3d8c4bee782e7c66eb1f319924ba494..be7c52fac4644c319515451762d56d7328ac3902 100644 (file)
@@ -283,13 +283,29 @@ static int traverse_sessionid(const char *key, struct sessionid *session,
 
        Ucrit_addPid(session->pid);
 
-       fstr_sprintf(uid_str, "%u", (unsigned int)session->uid);
-       fstr_sprintf(gid_str, "%u", (unsigned int)session->gid);
+       fstrcpy(uid_str, "-1");
+
+       if (session->uid != -1) {
+               if (numeric_only) {
+                       fstr_sprintf(uid_str, "%u", (unsigned int)session->uid);
+               } else {
+                       fstrcpy(uid_str, uidtoname(session->uid));
+               }
+       }
+
+       fstrcpy(gid_str, "-1");
+
+       if (session->gid != -1) {
+               if (numeric_only) {
+                       fstr_sprintf(gid_str, "%u", (unsigned int)session->gid);
+               } else {
+                       fstrcpy(gid_str, gidtoname(session->gid));
+               }
+       }
 
        d_printf("%-7s   %-12s  %-12s  %-12s (%s)\n",
                 procid_str_static(&session->pid),
-                numeric_only ? uid_str : uidtoname(session->uid),
-                numeric_only ? gid_str : gidtoname(session->gid),
+                uid_str, gid_str,
                 session->remote_machine, session->hostname);
 
        return 0;