On 03/31/2014 04:41 PM, Gedare Bloom wrote:
On Sun, Mar 30, 2014 at 6:51 PM, Pavel Pisa <ppisa4li...@pikron.com> wrote:
Hello Sebastian and others,
I have found time to test RTEMS GIT on LPC1788
in last days and it works OK. I have tried to
run code on CSB336/MXS based platform and I have
noticed two problems.
The firs is broken filesystem embedding at least
on my setup. The embedded untar breaks if directory
already exists. And default tar includes './'
in archive. Next change/workaround solves the problem
diff --git a/cpukit/libmisc/untar/untar.c b/cpukit/libmisc/untar/untar.c
index 5f1699d..11a6cc6 100644
--- a/cpukit/libmisc/untar/untar.c
+++ b/cpukit/libmisc/untar/untar.c
@@ -224,6 +224,8 @@ Untar_FromMemory(
else if (linkflag == DIRTYPE)
{
if ( mkdir(fname, S_IRWXU | S_IRWXG | S_IRWXO) != 0 ) {
+ if (!strcmp(fname, "/") || !strcmp(fname, "./"))
+ continue;
printk("Untar: failed to create directory %s\n", fname);
retval = UNTAR_FAIL;
break;
But I think that it should not be solved this way.
I expect that use of stat() libc function to check for directory
existence before mkdir attempt is better. If you agree with
this solution, I can prepare patch.
Yes it will be better to check if the directory already exists. Unless
you can get this info from the return code from mkdir, then using stat
seems to be appropriate.
-Gedare
I fixed it on another place with something like this (forgot to commit
this):
diff --git a/cpukit/libfs/src/imfs/imfs_load_tar.c
b/cpukit/libfs/src/imfs/imfs_load_tar.c
index fd47ec2..ddf4e45 100644
--- a/cpukit/libfs/src/imfs/imfs_load_tar.c
+++ b/cpukit/libfs/src/imfs/imfs_load_tar.c
@@ -107,6 +107,9 @@ int rtems_tarfs_load(
++len;
strncat(full_filename, filename, 256-len-1);
rv = mkdir(full_filename, S_IRWXU | S_IRWXG | S_IRWXO);
+ if (rv != 0 && errno == EEXIST) {
+ rv = 0;
+ }
}
/*
* Create a LINEAR_FILE node
The question is why we have also this untar.c.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
rtems-devel mailing list
rtems-devel@rtems.org
http://www.rtems.org/mailman/listinfo/rtems-devel