]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virGet{User,Group}Ent() don't say success on fail
authorDoug Goldstein <cardoe@cardoe.com>
Wed, 4 Sep 2013 16:15:34 +0000 (11:15 -0500)
committerDoug Goldstein <cardoe@cardoe.com>
Wed, 4 Sep 2013 17:01:26 +0000 (12:01 -0500)
When virGetUserEnt() and virGetGroupEnt() fail due to the uid or gid not
existing on the machine they'll print a message like:

$ virsh -c vbox:///session list
error: failed to connect to the hypervisor
error: Failed to find user record for uid '32655': Success

The success at the end is a bit confusing. This changes it to:

$ virsh -c vbox:///session list
error: failed to connect to the hypervisor
error: Failed to find user record for uid '32655'

src/util/virutil.c

index 34f59983a6306b20a6a6c93898dbf1a751465a8e..39d47171b6b421975d29db3035da5650a765d601 100644 (file)
@@ -692,11 +692,16 @@ virGetUserEnt(uid_t uid, char **name, gid_t *group, char **dir)
         if (VIR_RESIZE_N(strbuf, strbuflen, strbuflen, strbuflen) < 0)
             goto cleanup;
     }
-    if (rc != 0 || pw == NULL) {
+    if (rc != 0) {
         virReportSystemError(rc,
                              _("Failed to find user record for uid '%u'"),
                              (unsigned int) uid);
         goto cleanup;
+    } else if (pw == NULL) {
+        virReportError(VIR_ERR_SYSTEM_ERROR,
+                       _("Failed to find user record for uid '%u'"),
+                       (unsigned int) uid);
+        goto cleanup;
     }
 
     if (name && VIR_STRDUP(*name, pw->pw_name) < 0)
@@ -746,9 +751,16 @@ static char *virGetGroupEnt(gid_t gid)
         }
     }
     if (rc != 0 || gr == NULL) {
-        virReportSystemError(rc,
-                             _("Failed to find group record for gid '%u'"),
-                             (unsigned int) gid);
+        if (rc != 0) {
+            virReportSystemError(rc,
+                                 _("Failed to find group record for gid '%u'"),
+                                 (unsigned int) gid);
+        } else {
+            virReportError(VIR_ERR_SYSTEM_ERROR,
+                           _("Failed to find group record for gid '%u'"),
+                           (unsigned int) gid);
+        }
+
         VIR_FREE(strbuf);
         return NULL;
     }