--- trunk/grubby/grubby.c 2012/07/02 13:21:25 1866 +++ trunk/grubby/grubby.c 2012/07/02 13:22:30 1868 @@ -1310,7 +1310,9 @@ /* most likely the symlink is relative, so change our directory to the dir of the symlink */ - rc = chdir(dirname(strdupa(outName))); + char *dir = strdupa(outName); + rc = chdir(dirname(dir)); + free(dir); do { buf = alloca(len + 1); rc = readlink(basename(outName), buf, len);