Nicholas Burlett wrote: > On Apr 22, 2013, at 10:36 AM, Ben Franksen <ben.franksen- bgeptl67xyczqb+pc5n...@public.gmane.org> wrote: >> So, it appears that the locals fs (ext4) has a sane limit but sshfs does >> not. > > That makes some sense… sshfs is probably trying to avoid a round-trip to the server and is just reporting MAX_LONG. > > I'm not a core fish contributor,
Me neither, so please check the proposed patch below for validity (or ignore at your leisure). > but I expect that given this scenario, the code should be checking for ln <0 || ln > MAX_FILE_LENGTH: > > if (ln < 0 || ln > MAX_FILE_LENGTH) > ln = MAX_FILE_LENGTH; Yes, or just forget about the whole pathconf cruft and use the maximum (MAX_FILE_LENGTH=1024). It's not /that/ much memory (about 4k at the max) and it's a temporary scratch area anyway, so why bother. This is my current "fix": ben@sarun[2]: .../src/fish-shell > git diff diff --git a/wildcard.cpp b/wildcard.cpp index 6bd0153..dca8fb6 100644 --- a/wildcard.cpp +++ b/wildcard.cpp @@ -903,7 +903,6 @@ static int wildcard_expand_internal(const wchar_t *wc, The maximum length of a file element */ long ln=MAX_FILE_LENGTH; - char * narrow_dir_string = wcs2str(dir_string); /* In recursive mode, we look through the directory twice. If @@ -911,21 +910,6 @@ static int wildcard_expand_internal(const wchar_t *wc, */ rewinddir(dir); - if (narrow_dir_string) - { - /* - Find out how long the filename can be in a worst case - scenario - */ - ln = pathconf(narrow_dir_string, _PC_NAME_MAX); - - /* - If not specified, use som large number as fallback - */ - if (ln < 0) - ln = MAX_FILE_LENGTH; - free(narrow_dir_string); - } new_dir= (wchar_t *)malloc(sizeof(wchar_t)*(base_len+ln+2)); wc_str = wc_end?wcsndup(wc, wc_end-wc):wcsdup(wc); (this, BTW, also avoids the temporary allocation for narrow_dir_string. Cheers -- Ben Franksen () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachm€nts ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ Fish-users mailing list Fish-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fish-users