chiark / gitweb /
util_delete_path(): use util_strscpy()
[elogind.git] / libudev / libudev-util-private.c
index 84dee559c40cafdb4c345786c8d6d61dee88a4fc..5b5ecb1f503c788550b423e7722b6af223e4d6b6 100644 (file)
@@ -67,7 +67,7 @@ int util_delete_path(struct udev *udev, const char *path)
        char *pos;
        int retval;
 
-       strcpy (p, path);
+       util_strscpy(p, sizeof(p), path);
        pos = strrchr(p, '/');
        if (pos == p || pos == NULL)
                return 0;
@@ -100,24 +100,16 @@ int util_delete_path(struct udev *udev, const char *path)
  */
 int util_unlink_secure(struct udev *udev, const char *filename)
 {
-       int retval;
-
-       retval = chown(filename, 0, 0);
-       if (retval)
-               err(udev, "chown(%s, 0, 0) failed: %m\n", filename);
-
-       retval = chmod(filename, 0000);
-       if (retval)
-               err(udev, "chmod(%s, 0000) failed: %m\n", filename);
+       int err;
 
-       retval = unlink(filename);
+       chmod(filename, 0000);
+       chown(filename, 0, 0);
+       err = unlink(filename);
        if (errno == ENOENT)
-               retval = 0;
-
-       if (retval)
+               err = 0;
+       if (err)
                err(udev, "unlink(%s) failed: %m\n", filename);
-
-       return retval;
+       return err;
 }
 
 uid_t util_lookup_user(struct udev *udev, const char *user)