Thread (18 messages) flat view 18 messages, 2 authors, 2016-06-15

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

From: Erik Faye-Lund <hidden>
Date: 2016-06-15 22:50:05

On Tue, Nov 23, 2010 at 6:40 PM, Jonathan Nieder [off-list ref] wrote:
Erik Faye-Lund wrote:
quoted
--- 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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help