Re: [PATCH 1/4] make_absolute_path(): Do not append redundant slash
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Feb 9, 2010, 19:10 UTC
- Message-ID
- <201002092010.43910.j6t@kdbg.org>
- In-Reply-To
- <1265734950-15145-1-git-send-email-pclouds@gmail.com>
On Dienstag, 9. Februar 2010, Nguyễn Thái Ngọc Duy wrote:
Show 8 quoted lines
> @@ -54,8 +54,9 @@ const char *make_absolute_path(const char *path)
> if (len + strlen(last_elem) + 2 > PATH_MAX)
> die ("Too long path name: '%s/%s'",
> buf, last_elem);
> - buf[len] = '/';
> - strcpy(buf + len + 1, last_elem);
> + if (*buf != '/' || buf[1] != '\0')
> + buf[len++] = '/';Huh? You are adding a slash unless buf is exactly "/". That is, when buf is "/foo/" you still add a slash? That's not exactly avoiding redundancy. (Disclaimer: I didn't analyze the rest of the function whether my claim is true.)
> + strcpy(buf + len, last_elem); > free(last_elem); > last_elem = NULL; > }
-- Hannes