-
Notifications
You must be signed in to change notification settings - Fork 140
Description
I'm doing a wget --mirror operation on a fairly long URL (including the host folder ~ 242 chars) into another folder via --outdir adding another couple of chars.
This runs into the length limitation at
Line 1523 in 9a35fe6
| if (max_length > 0 && outlen > max_length) |
However I think that limitation is to aggressive/sensitive: It takes the entire quoted path (i.e. at least the 242 chars) and compares it against pathconf(..., _PC_NAME_MAX) when that is available. See
Lines 2665 to 2671 in 9a35fe6
| #if HAVE_PATHCONF | |
| ret = pathconf (*p ? p : ".", name); | |
| if (!(ret < 0 && errno == ENOENT)) | |
| break; | |
| #else | |
| ret = PATH_MAX; | |
| #endif |
Note that the _PC_NAME_MAX returns the maximum length for a filename while PATH_MAX is the maximum length of a path. The former is 255 while the latter is 4096 on "usual" Linux systems. So the 2 code paths are not nearly identical!
Given that the "chomp buffer" size (19) is additionally subtracted any output path is truncated at 255-19=236 chars which isn't enough for use-cases such as mine mirroring a larger hierarchy of folders (files in depth of 10 folders)