Nicholas Burlett wrote:
> On Apr 22, 2013, at 10:36 AM, Ben Franksen <ben.franksen-
[email protected]> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/fish-users