Re: [PATCH] Prevent buffer overflows when path is too big
From: Antoine Pelisse <hidden>
Date: 2016-06-15 22:59:03
My main motive was to not *stop* the process when a long path is met. Because somebody created a repository on Linux with a long file-name doesn't mean you should not be able to clone it *at all* on Windows. On Sun, Oct 20, 2013 at 12:33 PM, Duy Nguyen [off-list ref] wrote:
On Sun, Oct 20, 2013 at 12:47 PM, Torsten Bögershausen [off-list ref] wrote:quoted
I'm not sure how to handle overlong path in general, there are several ways: a) Silently overwrite memory (with help of memcpy() and/or strcpy()
This one stop the process, as the application crashes :-)
quoted
b) Silently shorten the path using strlcpy() instead of strcpy()
I was expecting this solution to fail later in a non-blocking way
(e.g. "Can't checkout file $truncated_path, continuing with other
files"). Maybe it would be better to look at each specific call site
and see if there is a way to report a problem ('return error("Can't
checkout %s: path too long")')
quoted
c) Avoid the overwriting and call die().
This one also stops the process, with an error (of course that's better than point a)
quoted
d) Prepare a longer buffer using xmalloc()d+) Use strbuf
This of course looks like the best solution, but I believe PATH_MAX exists for a reason, and maybe we can't simply ignore that value ? -- -- *** Please reply-to-all at all times *** *** (do not pretend to know who is subscribed and who is not) *** *** Please avoid top-posting. *** The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free. You received this message because you are subscribed to the Google Groups "msysGit" group. To post to this group, send email to msysgit@googlegroups.com To unsubscribe from this group, send email to msysgit+unsubscribe@googlegroups.com For more options, and view previous threads, visit this group at http://groups.google.com/group/msysgit?hl=en_US?hl=en --- You received this message because you are subscribed to the Google Groups "msysGit" group. To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.