X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmkdir.c;h=b117b76b53339caa268ca6b9181fc8efdc4b842f;hb=e031113dab8249c7225d83d112c2c01ee177c06b;hp=3d9f04380213e7aa4eda8b9569f197ac49c862aa;hpb=cb7317d75af2de40fecdd949e3fb11a85b09e10a;p=gnulib.git diff --git a/lib/mkdir.c b/lib/mkdir.c index 3d9f04380..b117b76b5 100644 --- a/lib/mkdir.c +++ b/lib/mkdir.c @@ -1,7 +1,7 @@ /* On some systems, mkdir ("foo/", 0700) fails because of the trailing slash. On those systems, this wrapper removes the trailing slash. - Copyright (C) 2001, 2003, 2006, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2001, 2003, 2006, 2008-2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -29,7 +29,6 @@ #include #include "dirname.h" -#include "xalloc.h" /* Disable the definition of mkdir to rpl_mkdir (from the substitute) in this file. Otherwise, we'd get an endless recursion. */ @@ -40,7 +39,7 @@ alias mkdir), only in the nonstandard io.h. */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # define mkdir(name,mode) _mkdir (name) -# define maybe_unused _UNUSED_PARAMETER_ +# define maybe_unused _GL_UNUSED #else # define maybe_unused /* empty */ #endif @@ -56,7 +55,13 @@ rpl_mkdir (char const *dir, mode_t mode maybe_unused) if (len && dir[len - 1] == '/') { - tmp_dir = xstrdup (dir); + tmp_dir = strdup (dir); + if (!tmp_dir) + { + /* Rather than rely on strdup-posix, we set errno ourselves. */ + errno = ENOMEM; + return -1; + } strip_trailing_slashes (tmp_dir); } else