Fix undefined behaviour and save some bytes as suggested by Manuel Novoa III
This commit was genuinely broken at the time (not related to our build system): sysdeps/linux/Config.in "fileutils/Config.in" dosyasini kaynak gosteriyor ama bu dosya repoda hic var olmadi (2002-12-05 - 2003-02-15 arasi orijinal yazar hatasi, 3238ea167 ile duzeltildi)
No binary (build failed)
—
(log yok)
| @@ -21,24 +21,22 @@ | |
| int realpath_main(int argc, char **argv) | |
| { | |
| - | char *resolved_path; |
| - | int count; |
| + | RESERVE_CONFIG_BUFFER(resolved_path, PATH_MAX); |
| - | if (argc == 1) { |
| + | if (--argc == 0) { |
| show_usage(); | |
| } | |
| - | resolved_path = malloc(PATH_MAX); |
| - | |
| - | for (count = 1; count < argc; count++) { |
| - | resolved_path = realpath(argv[count], resolved_path); |
| - | if (resolved_path) { |
| + | do { |
| + | argv++; |
| + | if (realpath(*argv, resolved_path) != NULL) { |
| puts(resolved_path); | |
| } else { | |
| - | perror_msg("%s", argv[count]); |
| + | perror_msg("%s", *argv); |
| } | |
| - | } |
| - | free(resolved_path); |
| + | } while (--argc); |
| + | |
| + | RELEASE_CONFIG_BUFFER(resolved_path); |
| return(EXIT_SUCCESS); | |
| - | } |
| + | } |