From: Roy Marples Date: Thu, 8 Nov 2007 11:06:41 +0000 (+0000) Subject: Use realpath to work out where dhcpcd is X-Git-Tag: v3.2.3~151 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=73c13650c1376e5d5da190a5ef9f97eb49d1b4bf;p=thirdparty%2Fdhcpcd.git Use realpath to work out where dhcpcd is --- diff --git a/dhcpcd.c b/dhcpcd.c index a23eb843..08d917f6 100644 --- 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) {