On 10:35 Mon 03 Sep , Sascha Hauer wrote: > On Sat, Sep 01, 2012 at 02:35:11PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote: > > HI, > > > > v2: > > addres comments > > > > please pull > > The following changes since commit b77300ac6c6bbbc7eac774ff0076c7c05d39735f: > > > > command/mount: add autodetection support (2012-08-21 18:53:00 +0800) > > > > are available in the git repository at: > > > > git://git.jcrosoft.org/barebox.git tags/fs-symlink > > > > The following results in a crash here: > > # mkdir mymount > # mount -t ramfs none mymount/ > # ln /env/boot/net /mymount/link found this will fix it diff --git a/fs/fs.c b/fs/fs.c index 05a1b85..53d8316 100644 --- a/fs/fs.c +++ b/fs/fs.c @@ -1060,17 +1060,24 @@ int symlink(const char *pathname, const char *newpath) { struct fs_driver_d *fsdrv; struct fs_device_d *fsdev; - char *p = normalise_path(pathname); + char *p; + char *freep = normalise_path(pathname); int ret; struct stat s; - if (!stat(p, &s) && S_ISDIR(s.st_mode)) { + if (!freep) + return -ENOMEM; + + if (!stat(freep, &s) && S_ISDIR(s.st_mode)) { ret = -ENOSYS; goto out; } - free(p); - p = normalise_path(newpath); + free(freep); + freep = p = normalise_path(newpath); + + if (!p) + return -ENOMEM; ret = stat(p, &s); if (!ret) { @@ -1092,7 +1099,7 @@ int symlink(const char *pathname, const char *newpath) } out: - free(p); + free(freep); if (ret) errno = -ret; Best Regards, J. _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox