From mboxrd@z Thu Jan 1 00:00:00 1970 From: tcremel at alphabot.fr Date: Fri, 29 Jan 2010 14:58:19 +0100 Subject: [U-Boot] bug in ubifs Message-ID: <36396.1264773499@alphabot.fr> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 ! :) http://www.alphabot.fr