[U-Boot] bug in ubifs

tcremel at alphabot.fr
2010-01-29T13:58:19Z

Some bugs I found while using uboot.
-------------------------------------------------------
BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }in
common/cmd_ubifs.c from line 59 add 2 lines
ubifs_initialized = 1;
}
+ // tcremel at alphabot.fr : ubifs_mounted is never reset if the
previous mount failed. This bring my system to hang as it tries to
unmount a non-existing mount point
+ ubifs_mounted = 0;
ret = ubifs_mount(vol_name);
if (ret)
return -1;
-------------------------------------------------------
BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }in
fs/ubifs/super.c from line 1189 add 2 lines
ret = ubifs_get_sb(&ubifs_fs_type, flags, name, data, mnt);
if (ret) {
printf("Error reading superblock on volume '%s'!n", name);
+ // tcremel at alphabot.fr : added as if the filesystem does not
exist, the previous system is partly kept. This bring my system to
hang as it has some superblocks informations from another FS
+ ubifs_sb=NULL;
return -1;
}
-------------------------------------------------------
in BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px;
}fs/ubifs/ubifs.c from line 42 modified 1 line to 5
unsigned char *out, size_t *out_len)
{
unsigned long len = in_len;
! return zunzip(out, *out_len, (unsigned char *)in, &len, 0, 0);
}
/* Fake description object for the "none" compressor */
>>>>>>>>>>>>>>>>>
unsigned char *out, size_t *out_len)
{
unsigned long len = in_len;
! // tcremel at alphabot.fr : the return length should not be lost.
! int res;
! res=zunzip(out, *out_len, (unsigned char *)in, &len, 0, 0);
! *out_len=len;
! return res;
}
-------------------------------------------------------
Hope this helps ! :)