- int pos = nval_find(xb, xb_size, name, NULL);
- int size;
-
- if(pos >= 0 && pos < xb_size){
- /* Find size, shift rest over this record, then zero out the rest of buffer */
- memcpy(&size,xb+pos,sizeof(int));
- memcpy(xb + pos, xb + pos + size, xb_size - (pos + size));
- memset(xb + (xb_size - size),0,size);
- return 0;
- } else
- return -ENOENT;
+ int pos = nval_find(dev, xb, xb_size, name, NULL);
+ s32 size;
+
+ if (pos < 0 || pos >= xb_size)
+ return -ENODATA;
+
+ /* Find size, shift rest over this record,
+ * then zero out the rest of buffer */
+ memcpy(&size, xb + pos, sizeof(size));
+ yaffs_do_endian_s32(dev, &size);
+
+ memcpy(xb + pos, xb + pos + size, xb_size - (pos + size));
+ memset(xb + (xb_size - size), 0, size);
+ return 0;