X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=libudev%2Flibudev-util-private.c;h=5b5ecb1f503c788550b423e7722b6af223e4d6b6;hb=f46b9c2628a4d28381ab297e699d9a0530a9e945;hp=84dee559c40cafdb4c345786c8d6d61dee88a4fc;hpb=4851d131d62936c531dc4044ce19a4c4a66ba0a1;p=elogind.git diff --git a/libudev/libudev-util-private.c b/libudev/libudev-util-private.c index 84dee559c..5b5ecb1f5 100644 --- a/libudev/libudev-util-private.c +++ b/libudev/libudev-util-private.c @@ -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)