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

Re: [RFC PATCH 1/6] msvc: opendir: use xmalloc

From
Erik Faye-Lund <kusmabite@gmail.com>
Date
Nov 23, 2010, 17:45 UTC
Message-ID
<AANLkTiknTQp96PeiBd+MqCO6uEs1mCzFYDsW8NwYpBsm@mail.gmail.com>
In-Reply-To
<20101123174050.GB12113@burratino>
On Tue, Nov 23, 2010 at 6:40 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 26 quoted lines
> Erik Faye-Lund wrote:
>
>> --- a/compat/msvc.c
>> +++ b/compat/msvc.c
>> @@ -7,16 +7,13 @@ DIR *opendir(const char *name)
>>  {
>>       int len;
>>       DIR *p;
>> -     p = (DIR*)malloc(sizeof(DIR));
>> +     p = xmalloc(sizeof(DIR));
>>       memset(p, 0, sizeof(DIR));
>>       strncpy(p->dd_name, name, PATH_MAX);
>>       len = strlen(p->dd_name);
>>       p->dd_name[len] = '/';
>>       p->dd_name[len+1] = '*';
>>
>> -     if (p == NULL)
>> -             return NULL;
>
> A behavior change but maybe a good one.  For example, the
> prune_packed_objects() loop currently skips object dirs it can't open,
> even if that is due to memory exhaustion, but this changes it to error
> out.
>
> What is the motivation?
>

The motivation is just to avoid having to deal with the error, like we do other places. It's not a big deal though. I could also set errno to ENOMEM and return NULL if that's preferable. I just don't see how it is.

I also slightly dislike setting an error not listed in POSIX' documentation of opendir, even though it's probably allowed.

Previous: Jonathan NiederNext: Erik Faye-Lund
Message 4 of 18 in “win32-dirent”
  1. 0/6 win32-direntErik Faye-Lund, Nov 23, 2010
  2. 1/6 msvc: opendir: use xmallocErik Faye-Lund, Nov 23, 2010
  3. Jonathan NiederNov 23, 2010
  4. Erik Faye-LundNov 23, 2010
  5. Erik Faye-LundNov 23, 2010
  6. Jonathan NiederNov 23, 2010
  7. Erik Faye-LundNov 23, 2010
  8. 2/6 msvc: opendir: allocate enough memoryErik Faye-Lund, Nov 23, 2010
  9. Jonathan NiederNov 23, 2010
  10. Erik Faye-LundNov 23, 2010
  11. 3/6 msvc: opendir: do not start the searchErik Faye-Lund, Nov 23, 2010
  12. 4/6 win32: dirent: handle errorsErik Faye-Lund, Nov 23, 2010
  13. 5/6 msvc: opendir: handle paths ending with a slashErik Faye-Lund, Nov 23, 2010
  14. Jonathan NiederNov 23, 2010
  15. Erik Faye-LundNov 23, 2010
  16. 6/6 win32: use our own dirent.hErik Faye-Lund, Nov 23, 2010
  17. Jonathan NiederNov 23, 2010
  18. Erik Faye-LundNov 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.