From: Faiz Kothari Date: Tue, 04 Mar 2014 16:49:27 GMT Subject: Re: [PATCH] Setup.c: PATH_MAX is the length including the Nil Message-ID: In-Reply-To: <1393950550-9668-1-git-send-email-sunheehnus@gmail.com> On Tue, Mar 4, 2014 at 9:59 PM, Sun He wrote: > Signed-off-by: Sun He > --- > > Check the limit.h of linux and find out that the MACRO > #define PATH_MAX 4096 /* # chars in a path name including nul */ > So if the magic number 40 is just the size it should be. (e.g. hash code) > It may bring bugs with the length(4056) of long name(gitdirenv). > As gitdirenv could be set by GIT_DIR_ENVIRONMENT. > If it is a bug, it will almost never occur. > But I need your help to know if there is the PATH_MAX of git is the mirror of the > PATH_MAX of linux and if this fix is right? > If it was, there may be many places like "PATH_MAX + 1" could be replaced by > just "PATH_MAX". And there may be many places like this. > > Cheers, > He Sun Hi, I am not getting what exactly you are trying to tell, but git defines its own PATH_MAX. Its defined in git-compat-util.h: #define PATH_MAX 4096 That is why instead of making buffers using PATH_MAX, use strbuf. All these problems of buffer overflow will be gone. I hope you are concerned about buffer overflow. Cheers -Faiz