index-helper: fix UNIX_PATH_MAX redefinition error on cygwin
PATCH 1/3 index-helper: fix UNIX_PATH_MAX redefinition error on cygwin
--- git-compat-util.h | 17 ----------------- index-helper.c | 4 ++-- read-cache.c | 2 +- 3 files changed, 3 insertions(+), 20 deletions(-)
git-compat-util.h +0 -17
@@ -1043,21 +1043,4 @@ struct tm *git_gmtime_r(const time_t *, struct tm *);#define getc_unlocked (fh) getc(fh)#endif -#ifdef __linux__ -#define UNIX_PATH_MAX 108 -#elif defined(__APPLE__) || defined(BSD ) -#define UNIX_PATH_MAX 104 -#else -/* -* Quoth POSIX: The size of sun_path has intentionally been left -* undefined. This is because different implementations use different -* sizes. For example, 4.3 BSD uses a size of 108, and 4.4 BSD uses a -* size of 104. Since most implementations originate from BSD -* versions, the size is typically in the range 92 to 108. -* -* Thanks, POSIX! Super-helpful! Hope we don't overflow any buffers! -*/ -#define UNIX_PATH_MAX 92 -#endif -#endif
index-helper.c +2 -2
@@ -309,7 +309,7 @@ static int setup_socket(const char *socket_path)int len; len =strlen (socket_path); -if (len >UNIX_PATH_MAX -1 ) +if (len >sizeof (address.sun_path) -1 )die ("path %s is too long for a socket" , socket_path); fd =socket (PF_UNIX ,SOCK_STREAM ,0 );
@@ -317,7 +317,7 @@ static int setup_socket(const char *socket_path)return -1 ; address.sun_family =AF_UNIX ; -strncpy (address.sun_path, socket_path,UNIX_PATH_MAX ); +strncpy (address.sun_path, socket_path,sizeof (address.sun_path));if (bind (fd, (struct sockaddr *) &address,sizeof (address)))die_errno (_ ("failed to bind to socket %s" ), socket_path);
read-cache.c +1 -1
@@ -1728,7 +1728,7 @@ int connect_to_index_helper(void)int fd;if (readlink (git_path ("index-helper.path" ), address.sun_path, -UNIX_PATH_MAX ) <0 ) +sizeof (address.sun_path)) <0 )return -1 ; fd =socket (PF_UNIX ,SOCK_STREAM ,0 );
Signature · 1 line
2.8.0
On 04/11/2016 12:59 AM, Ramsay Jones wrote:
The header mentions cygwin, but changes it for linux, BSD and Mac OS as well. Is this intentional ?
Quoted 12 lines
Signed-off-by Ramsay Jones <[email protected]>--- git-compat-util.h | 17 ----------------- index-helper.c | 4 ++-- read-cache.c | 2 +- 3 files changed, 3 insertions(+), 20 deletions(-)git-compat-util.h +0
-0
git-compat-util.h struct tm *git_gmtime_r(const time_t *, struct tm *); · line 1050
Quoted 8 lines
git-compat-util.h +0
-5@@ -1043,21 +1043,4 @@ struct tm *git_gmtime_r(const time_t *, struct tm *);#define getc_unlocked (fh) getc(fh)#endif -#ifdef __linux__ -#define UNIX_PATH_MAX 108 -#elif defined(__APPLE__) || defined(BSD ) -#define UNIX_PATH_MAX 104 -#else
Can we use a #elif __CYGWIN__ here to fix the re-definition just for cygwi ?
Quoted 3 lines · Torsten Bögershausen
On 04/11/2016 12:59 AM, Ramsay Jones wrote:
The header mentions cygwin, but changes it for linux, BSD and Mac OS as well. Is this intentional ?
Yes. I only compile on 32/64-bit linux and 64-bit cygwin these days, so I only noticed the warnings (yes I wrote error, but it should be warning) on cygwin. Other systems may suffer the same warnings, of course.
Quoted 7 lines
Quoted 7 lines
Signed-off-by Ramsay Jones <[email protected]>--- git-compat-util.h | 17 ----------------- index-helper.c | 4 ++-- read-cache.c | 2 +- 3 files changed, 3 insertions(+), 20 deletions(-)
Quoted 13 lines
git-compat-util.h struct tm *git_gmtime_r(const time_t *, struct tm *); · line 1049
Quoted 12 lines
git-compat-util.h +0
-4@@ -1043,21 +1043,4 @@ struct tm *git_gmtime_r(const time_t *, struct tm *);#define getc_unlocked (fh) getc(fh)#endif -#ifdef __linux__ -#define UNIX_PATH_MAX 108 -#elif defined(__APPLE__) || defined(BSD ) -#define UNIX_PATH_MAX 104 -#else Can we use a #elif
__CYGWIN__here to fix the re-definition just for cygwi ?
As I said in the cover letter, that is an option - but why bother with UNIX_PATH_MAX at all?
ATB,
Ramsay Jones
Quoted 36 lines · Ramsay Jones
Quoted 4 lines · Torsten Bögershausen
On 04/11/2016 12:59 AM, Ramsay Jones wrote:
The header mentions cygwin, but changes it for linux, BSD and Mac OS as well.
Is this intentional ?Yes. I only compile on 32/64-bit linux and 64-bit cygwin these days, so I only
noticed the warnings (yes I wrote error, but it should be warning) on cygwin.
Other systems may suffer the same warnings, of course.Quoted 7 lines
Quoted 7 lines
Signed-off-by Ramsay Jones <[email protected]>--- git-compat-util.h | 17 ----------------- index-helper.c | 4 ++-- read-cache.c | 2 +- 3 files changed, 3 insertions(+), 20 deletions(-)Quoted 15 lines
git-compat-util.h struct tm *git_gmtime_r(const time_t *, · line 1050
Quoted 13 lines
git-compat-util.h +0
-4@@ -1043,21 +1043,4 @@ struct tm *git_gmtime_r(const time_t *, struct tm *);#define getc_unlocked (fh) getc(fh)#endif -#ifdef __linux__ -#define UNIX_PATH_MAX 108 -#elif defined(__APPLE__) || defined(BSD ) -#define UNIX_PATH_MAX 104 -#else Can we use a #elif
__CYGWIN__here to fix the re-definition just for cygwi ?
Quoted 3 lines
As I said in the cover letter, that is an option - but why bother with
UNIX_PATH_MAXat all?
Will remove UNIX_PATH_MAX in favor of sizeof().
Thanks.