From: Alex Riesen Date: Thu, 02 Aug 2007 20:49:09 GMT Subject: Re: [PATCH] Fix set_work_tree on cygwin Message-ID: <20070802204909.GA2829@steel.home> In-Reply-To: Johannes Schindelin, Thu, Aug 02, 2007 17:38:37 +0200: > Hi, > > On Thu, 2 Aug 2007, Alex Riesen wrote: > > >@@ -209,7 +209,8 @@ const char *set_work_tree(const char *dir) > > len = strlen(dir); > > if (len > postfix_len && !strcmp(dir + len - postfix_len, > > "/" DEFAULT_GIT_DIR_ENVIRONMENT)) { > >- strncpy(dir_buffer, dir, len - postfix_len); > >+ strncpy(dir_buffer, dir, len - postfix_len); > >+ dir_buffer[len - postfix_len] = '\0'; > > > > /* are we inside the default work tree? */ > > rel = get_relative_cwd(buffer, sizeof(buffer), dir_buffer); > > Darn, darn, darn. strncpy does _not_ NUL terminate. I keep forgetting > that. > > Better use strlcpy()? Of course, but it just should not be needed at all: static supposed to be zeroed.