From: Erik Faye-Lund Date: Tue, 23 Nov 2010 17:45:07 GMT Subject: Re: [RFC PATCH 1/6] msvc: opendir: use xmalloc Message-ID: In-Reply-To: <20101123174050.GB12113@burratino> On Tue, Nov 23, 2010 at 6:40 PM, Jonathan Nieder wrote: > 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.