From: Tobias Stoeckmann Date: Sat, 11 Apr 2026 18:49:58 +0000 (+0200) Subject: copyfilerange: Skip optarg duplication X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=8183c44193d7cf0947cf8a58376dde894fbe375f;p=thirdparty%2Futil-linux.git copyfilerange: Skip optarg duplication The -r arguments are collected in range_files array, which contains strings which are used for opening files and error messages. Remove duplication which simplifies memory handling and reduces binary size. Signed-off-by: Tobias Stoeckmann --- diff --git a/misc-utils/copyfilerange.c b/misc-utils/copyfilerange.c index f28cacd10..e5bb1dc0e 100644 --- a/misc-utils/copyfilerange.c +++ b/misc-utils/copyfilerange.c @@ -168,7 +168,7 @@ static void handle_range(char* str, struct rangeitem *range) copy_range(range); } -static void handle_range_files(struct rangeitem *range, size_t nrange_files, char **range_files) +static void handle_range_files(struct rangeitem *range, size_t nrange_files, const char **range_files) { for (size_t i = 0; i < nrange_files; i++) { FILE *f = fopen(range_files[i], "r"); @@ -187,7 +187,6 @@ static void handle_range_files(struct rangeitem *range, size_t nrange_files, cha handle_range(line, range); } - free(range_files[i]); free(line); fclose(f); } @@ -196,7 +195,7 @@ static void handle_range_files(struct rangeitem *range, size_t nrange_files, cha int main(const int argc, char **argv) { - char **range_files = NULL; + const char **range_files = NULL; size_t nrange_files = 0; struct stat sb; struct rangeitem range = {0}; @@ -220,7 +219,7 @@ int main(const int argc, char **argv) case 'r': if (!range_files) range_files = xmalloc(sizeof(char *) * argc); - range_files[nrange_files++] = xstrdup(optarg); + range_files[nrange_files++] = optarg; break; case 'v': verbose = 1;