mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-05-24 23:05:52 -04:00
Compare commits
1 Commits
master
...
pr-remove-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
764e9157f5 |
@@ -25,12 +25,15 @@ const char * findProgramPath(const char * argv0)
|
||||
if (path == NULL) return NULL;
|
||||
|
||||
bufsize = strlen(path) + 1;
|
||||
start = pathbuf = alloca(bufsize);
|
||||
start = pathbuf = malloc(bufsize);
|
||||
if (pathbuf == NULL) return NULL; /* XXX can't happen */
|
||||
strlcpy(pathbuf, path, bufsize);
|
||||
bufsize += sizeof "/" - 1 + strlen(argv0);
|
||||
buf = malloc(bufsize);
|
||||
if (buf == NULL) return NULL; /* XXX can't happen */
|
||||
if (buf == NULL) {
|
||||
free(pathbuf);
|
||||
return NULL; /* XXX can't happen */
|
||||
}
|
||||
|
||||
chptr = NULL;
|
||||
/*@-branchstate@*/
|
||||
@@ -39,8 +42,10 @@ const char * findProgramPath(const char * argv0)
|
||||
*chptr = '\0';
|
||||
snprintf(buf, bufsize, "%s/%s", start, argv0);
|
||||
|
||||
if (!access(buf, X_OK))
|
||||
if (!access(buf, X_OK)) {
|
||||
free(pathbuf);
|
||||
return buf;
|
||||
}
|
||||
|
||||
if (chptr)
|
||||
start = chptr + 1;
|
||||
@@ -49,6 +54,7 @@ const char * findProgramPath(const char * argv0)
|
||||
} while (start && *start);
|
||||
/*@=branchstate@*/
|
||||
|
||||
free(pathbuf);
|
||||
free(buf);
|
||||
|
||||
return NULL;
|
||||
|
||||
Reference in New Issue
Block a user