yaffsfs.c: Fix NULL dereference in yaffs_unmount2_reldev()
[yaffs2.git] / yaffs_tagsmarshall.c
index bcd6f242dc256d999c2cc22ac6cd77fd3b1aa11f..397715dbc9eb00f27a79afbd3a5910352e2768bc 100644 (file)
@@ -100,8 +100,12 @@ static int yaffs_tags_marshall_read(struct yaffs_dev *dev,
                BUG();
 
 
-       if (retval == YAFFS_FAIL)
+       if (retval == YAFFS_FAIL) {
+               if (local_data)
+                       yaffs_release_temp_buffer(dev, data);
+
                return YAFFS_FAIL;
+       }
 
        if (dev->param.inband_tags) {
                if (tags) {
@@ -172,10 +176,7 @@ static int yaffs_tags_marshall_query_block(struct yaffs_dev *dev, int block_no,
                "block query returns  seq %d state %d",
                *seq_number, *state);
 
-       if (retval == 0)
-               return YAFFS_OK;
-       else
-               return YAFFS_FAIL;
+       return retval;
 }
 
 static int yaffs_tags_marshall_mark_bad(struct yaffs_dev *dev, int block_no)