git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 2/6] msvc: opendir: allocate enough memory

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 26, 2010, 18:34 UTC
Message-ID
<7vfwuoq6gn.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1290537509-360-3-git-send-email-kusmabite@gmail.com>
Erik Faye-Lund <kusmabite@gmail.com> writes:
Show 15 quoted lines
>  DIR *opendir(const char *name)
>  {
> -	int len;
> +	int len = strlen(name);
>  	DIR *p;
> -	p = malloc(sizeof(DIR));
> +	p = malloc(sizeof(DIR) + len + 2);
>  	if (!p)
>  		return NULL;
>  
> -	memset(p, 0, sizeof(DIR));
> -	strncpy(p->dd_name, name, PATH_MAX);
> -	len = strlen(p->dd_name);
> +	memset(p, 0, sizeof(DIR) + len + 2);
> +	strcpy(p->dd_name, name);

I'd queue this anyway, but I think you do not have to memset() that many bytes. It should be enough to clear sizeof(DIR) here; you have to assign NUL p->dd_name[len+2] though.

Show 5 quoted lines
>  	p->dd_name[len] = '/';
>  	p->dd_name[len+1] = '*';
>  
> -- 
> 1.7.3.2.493.gc8738
Previous: Erik Faye-LundNext: Erik Faye-Lund
Message 4 of 11 in “win32-dirent”
  1. 0/6 win32-direntErik Faye-Lund, Nov 23, 2010
  2. 1/6 msvc: opendir: fix malloc-failureErik Faye-Lund, Nov 23, 2010
  3. 2/6 msvc: opendir: allocate enough memoryErik Faye-Lund, Nov 23, 2010
  4. Junio C HamanoNov 26, 2010
  5. 3/6 msvc: opendir: do not start the searchErik Faye-Lund, Nov 23, 2010
  6. 4/6 win32: dirent: handle errorsErik Faye-Lund, Nov 23, 2010
  7. 5/6 msvc: opendir: handle paths ending with a slashErik Faye-Lund, Nov 23, 2010
  8. René ScharfeNov 23, 2010
  9. Erik Faye-LundNov 23, 2010
  10. René ScharfeNov 23, 2010
  11. 6/6 win32: use our own dirent.hErik Faye-Lund, Nov 23, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.