--- cpukit/libmisc/untar/untar.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/cpukit/libmisc/untar/untar.c b/cpukit/libmisc/untar/untar.c index aed8fed..4591a8b 100644 --- a/cpukit/libmisc/untar/untar.c +++ b/cpukit/libmisc/untar/untar.c @@ -28,6 +28,7 @@ #include <string.h> #include <stdlib.h> #include <unistd.h> +#include <errno.h> #include <sys/stat.h> #include <fcntl.h> #include <rtems/untar.h> @@ -203,6 +204,13 @@ Untar_FromMemory( } } else if (linkflag == DIRTYPE) { if ( mkdir(fname, S_IRWXU | S_IRWXG | S_IRWXO) != 0 ) { + if (errno == EEXIST) { + struct stat stat_buf; + if ( stat(fname, &stat_buf) == 0 ) { + if ( S_ISDIR(stat_buf.st_mode) ) + continue; + } + } printk("Untar: failed to create directory %s\n", fname); retval = UNTAR_FAIL; break; -- 1.9.1 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel