]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Use realpath to work out where dhcpcd is
authorRoy Marples <roy@marples.name>
Thu, 8 Nov 2007 11:06:41 +0000 (11:06 +0000)
committerRoy Marples <roy@marples.name>
Thu, 8 Nov 2007 11:06:41 +0000 (11:06 +0000)
dhcpcd.c

index a23eb843ddefccb7c60d26b28aa9a26a6b2bc243..08d917f6a6ab104411d9f8346c2e5d24fd5f4598 100644 (file)
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -423,19 +423,11 @@ int main(int argc, char **argv)
 #ifdef THERE_IS_NO_FORK
        dhcpcd_argv = argv;
        dhcpcd_argc = argc;
-
-       /* We need the full path to the dhcpcd */
-       if (*argv[0] == '/')
-               strlcpy (dhcpcd, argv[0], sizeof (dhcpcd));
-       else {
-               char pwd[PATH_MAX];
-               if (! getcwd (pwd, PATH_MAX)) {
-                       logger (LOG_ERR, "getcwd: %s", strerror (errno));
-                       exit (EXIT_FAILURE);
-               }
-               snprintf (dhcpcd, sizeof (dhcpcd), "%s/%s", pwd, argv[0]);
+       if (! realpath (argv[0], dhcpcd)) {
+               logger (LOG_ERR, "unable to resolve the path `%s' (%s): %s",
+                               argv[0], dhcpcd, strerror (errno));
+               exit (EXIT_FAILURE);
        }
-
 #endif
 
        if (optind < argc) {