chiark / gitweb /
udev: fix a few issues detected by the llvm static analyzer
[elogind.git] / src / udev / libudev-util-private.c
index 08f0ba2228c504c39e2cd8af809e7666d0f949a5..44ff02cc331cdfafc40d9051be7ebff1df7a671f 100644 (file)
@@ -41,7 +41,6 @@ static int create_path(struct udev *udev, const char *path, bool selinux)
                 return 0;
         pos[0] = '\0';
 
-        dbg(udev, "stat '%s'\n", p);
         if (stat(p, &stats) == 0) {
                 if ((stats.st_mode & S_IFMT) == S_IFDIR)
                         return 0;
@@ -53,7 +52,6 @@ static int create_path(struct udev *udev, const char *path, bool selinux)
         if (err != 0)
                 return err;
 
-        dbg(udev, "mkdir '%s'\n", p);
         if (selinux)
                 udev_selinux_setfscreatecon(udev, p, S_IFDIR|0755);
         err = mkdir(p, 0755);
@@ -116,11 +114,11 @@ int util_delete_path(struct udev *udev, const char *path)
 uid_t util_lookup_user(struct udev *udev, const char *user)
 {
         char *endptr;
-        size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
-        char buf[buflen];
         struct passwd pwbuf;
         struct passwd *pw;
         uid_t uid;
+        size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
+        char *buf = alloca(buflen);
 
         if (strcmp(user, "root") == 0)
                 return 0;
@@ -141,18 +139,17 @@ uid_t util_lookup_user(struct udev *udev, const char *user)
 gid_t util_lookup_group(struct udev *udev, const char *group)
 {
         char *endptr;
-        size_t buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
-        char *buf;
         struct group grbuf;
         struct group *gr;
         gid_t gid = 0;
+        size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
+        char *buf = NULL;
 
         if (strcmp(group, "root") == 0)
                 return 0;
         gid = strtoul(group, &endptr, 10);
         if (endptr[0] == '\0')
                 return gid;
-        buf = NULL;
         gid = 0;
         for (;;) {
                 char *newbuf;
@@ -226,7 +223,7 @@ int util_resolve_subsys_kernel(struct udev *udev, const char *string,
                         util_strscpy(result, maxsize, val);
                 else
                         result[0] = '\0';
-                info(udev, "value '[%s/%s]%s' is '%s'\n", subsys, sysname, attr, result);
+                dbg(udev, "value '[%s/%s]%s' is '%s'\n", subsys, sysname, attr, result);
         } else {
                 size_t l;
                 char *s;
@@ -235,7 +232,7 @@ int util_resolve_subsys_kernel(struct udev *udev, const char *string,
                 l = util_strpcpyl(&s, maxsize, udev_device_get_syspath(dev), NULL);
                 if (attr != NULL)
                         util_strpcpyl(&s, l, "/", attr, NULL);
-                info(udev, "path '[%s/%s]%s' is '%s'\n", subsys, sysname, attr, result);
+                dbg(udev, "path '[%s/%s]%s' is '%s'\n", subsys, sysname, attr, result);
         }
         udev_device_unref(dev);
         return 0;