commit 0a9483d0af324e2f67bb3af427577a35fb7ed401 from: Stefan Sperling date: Mon Oct 19 23:14:59 2020 UTC handle non-const basename in got_path_basename() ok millert commit - dbdd620944b55aa6cbe81fede1db6443521ac3ec commit + 0a9483d0af324e2f67bb3af427577a35fb7ed401 blob - 549cac5f15819dd3e37527467f02c394f51d5006 blob + 0648aebafecc757f25710300b9e98d53c91c585a --- lib/path.c +++ lib/path.c @@ -424,9 +424,13 @@ done: const struct got_error * got_path_basename(char **s, const char *path) { + char buf[PATH_MAX]; char *base; - base = basename(path); + if (strlcpy(buf, path, sizeof(buf)) >= sizeof(buf)) + return got_error(GOT_ERR_NO_SPACE); + + base = basename(buf); if (base == NULL) return got_error_from_errno2("basename", path);