+ yaffs_UnpackTags2(tags, &pt);
+ }
+ }
-
-- if(tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
-- tags->eccResult = YAFFS_ECC_RESULT_UNFIXED;
++
+ if (localData)
+ yaffs_ReleaseTempBuffer(dev, data, __LINE__);
+- if(tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
+ if (tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
-+ tags->eccResult = YAFFS_ECC_RESULT_UNFIXED;
+ tags->eccResult = YAFFS_ECC_RESULT_UNFIXED;
+-
if (retval == 0)
return YAFFS_OK;
else
counters = alloc_counters(table);
if (IS_ERR(counters))
-@@ -962,6 +988,14 @@ copy_entries_to_user(unsigned int total_
+@@ -961,6 +987,14 @@ copy_entries_to_user(unsigned int total_
+ ret = -EFAULT;
goto free_counters;
}
-
++
+ flags = e->ip.flags & IPT_F_MASK;
+ if (copy_to_user(userptr + off
+ + offsetof(struct ipt_entry, ip.flags),
+ ret = -EFAULT;
+ goto free_counters;
+ }
-+
+
for (i = sizeof(struct ipt_entry);
i < e->target_offset;
- i += m->u.match_size) {