Am 29.09.2011 22:59, schrieb Erik Faye-Lund: > diff --git a/path.c b/path.c > index 6f3f5d5..f7dfd0b 100644 > --- a/path.c > +++ b/path.c > @@ -283,7 +283,7 @@ return_null: > * links. User relative paths are also returned as they are given, > * except DWIM suffixing. > */ > -char *enter_repo(char *path, int strict) > +const char *enter_repo(const char *path, int strict) > { > static char used_path[PATH_MAX]; > static char validated_path[PATH_MAX]; > @@ -297,14 +297,15 @@ char *enter_repo(char *path, int strict) > }; > int len = strlen(path); > int i; > - while ((1 < len) && (path[len-1] == '/')) { > - path[len-1] = 0; > + while ((1 < len) && (path[len-1] == '/')) > len--; > - } > + > if (PATH_MAX <= len) > return NULL; > - if (path[0] == '~') { > - char *newpath = expand_user_path(path); > + strncpy(used_path, path, len); > + > + if (used_path[0] == '~') { > + char *newpath = expand_user_path(used_path); > if (!newpath || (PATH_MAX - 10 < strlen(newpath))) { > free(newpath); > return NULL; > @@ -316,24 +317,21 @@ char *enter_repo(char *path, int strict) > * anyway. > */ > strcpy(used_path, newpath); free(newpath); > - strcpy(validated_path, path); > - path = used_path; > + strcpy(validated_path, used_path); > } > else if (PATH_MAX - 10 < len) > return NULL; > - else { > - path = strcpy(used_path, path); > - strcpy(validated_path, path); > - } > - len = strlen(path); > + else > + strcpy(validated_path, used_path); > + len = strlen(used_path); > for (i = 0; suffix[i]; i++) { > - strcpy(path + len, suffix[i]); > - if (!access(path, F_OK)) { > + strcpy(used_path + len, suffix[i]); > + if (!access(used_path, F_OK)) { > strcat(validated_path, suffix[i]); > break; > } > } > - if (!suffix[i] || chdir(path)) > + if (!suffix[i] || chdir(used_path)) > return NULL; > path = validated_path; > } The use of strcpy and strncpy makes me nervous, but I can't spot a bug currently and strcpy and even strcat calls had been already in there before your patch. René -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html