X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_yaffs2.c;h=ab175b9e24d3fbae9aa0afaf74e894c3670c49dd;hp=40d9771cdf5019dbe90b41c07d2d1c1d9a01ddd4;hb=993de0d40a67e466cc22de0df144a6dc363e3193;hpb=bfb36fe45ceea5a7e8347b24a575ab627e60df94 diff --git a/yaffs_yaffs2.c b/yaffs_yaffs2.c index 40d9771..ab175b9 100644 --- a/yaffs_yaffs2.c +++ b/yaffs_yaffs2.c @@ -1130,6 +1130,15 @@ int yaffs2_ScanBackwards(yaffs_Device *dev) dev->nFreeChunks++; + } else if (tags.objectId > YAFFS_MAX_OBJECT_ID || + tags.chunkId > YAFFS_MAX_CHUNK_ID || + (tags.chunkId > 0 && tags.byteCount > dev->nDataBytesPerChunk)) { + T(YAFFS_TRACE_SCAN, + (TSTR("Chunk (%d:%d) with bad tags:obj = %d, chunkId = %d, byteCount = %d, ignored"TENDSTR), + blk, c,tags.objectId, tags.chunkId, tags.byteCount)); + + dev->nFreeChunks++; + } else if (tags.chunkId > 0) { /* chunkId > 0 so it is a data chunk... */ unsigned int endpos; @@ -1364,7 +1373,7 @@ int yaffs2_ScanBackwards(yaffs_Device *dev) - yaffs_SetObjectName(in, oh->name); + yaffs_SetObjectNameFromOH(in, oh); parent = yaffs_FindOrCreateObjectByNumber (dev, oh->parentObjectId,