projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More clean up
[yaffs2.git]
/
yaffs_nameval.c
diff --git
a/yaffs_nameval.c
b/yaffs_nameval.c
index e75411be9fb7dfef4e3f6866347a35cc88140881..767f9e0daef58562ff8d9cd0c075ad6ee4a33cb3 100644
(file)
--- a/
yaffs_nameval.c
+++ b/
yaffs_nameval.c
@@
-37,13
+37,14
@@
static int nval_find(const char *xb, int xb_size, const YCHAR *name,
memcpy(&size, xb, sizeof(int));
while (size > 0 && (size < xb_size) && (pos + size < xb_size)) {
memcpy(&size, xb, sizeof(int));
while (size > 0 && (size < xb_size) && (pos + size < xb_size)) {
- if (!strncmp((YCHAR *) (xb + pos + sizeof(int)), name, size)) {
+ if (!strncmp((YCHAR *) (xb + pos + sizeof(int)),
+ name, size)) {
if (exist_size)
*exist_size = size;
return pos;
}
pos += size;
if (exist_size)
*exist_size = size;
return pos;
}
pos += size;
- if (pos < xb_size - sizeof(int))
+ if (pos < xb_size -
(int)
sizeof(int))
memcpy(&size, xb + pos, sizeof(int));
else
size = 0;
memcpy(&size, xb + pos, sizeof(int));
else
size = 0;
@@
-61,7
+62,7
@@
static int nval_used(const char *xb, int xb_size)
memcpy(&size, xb + pos, sizeof(int));
while (size > 0 && (size < xb_size) && (pos + size < xb_size)) {
pos += size;
memcpy(&size, xb + pos, sizeof(int));
while (size > 0 && (size < xb_size) && (pos + size < xb_size)) {
pos += size;
- if (pos < xb_size - sizeof(int))
+ if (pos < xb_size -
(int)
sizeof(int))
memcpy(&size, xb + pos, sizeof(int));
else
size = 0;
memcpy(&size, xb + pos, sizeof(int));
else
size = 0;
@@
-146,6
+147,12
@@
int nval_get(const char *xb, int xb_size, const YCHAR * name, char *buf,
pos++;
size--;
pos++;
size--;
+ /* If bsize is zero then this is a size query.
+ * Return the size, but don't copy.
+ */
+ if (!bsize)
+ return size;
+
if (size <= bsize) {
memcpy(buf, xb + pos, size);
return size;
if (size <= bsize) {
memcpy(buf, xb + pos, size);
return size;
@@
-166,7
+173,7
@@
int nval_list(const char *xb, int xb_size, char *buf, int bsize)
int filled = 0;
memcpy(&size, xb + pos, sizeof(int));
int filled = 0;
memcpy(&size, xb + pos, sizeof(int));
- while (size > sizeof(int) &&
+ while (size >
(int)
sizeof(int) &&
size <= xb_size &&
(pos + size) < xb_size &&
!filled) {
size <= xb_size &&
(pos + size) < xb_size &&
!filled) {
@@
-187,7
+194,7
@@
int nval_list(const char *xb, int xb_size, char *buf, int bsize)
filled = 1;
}
pos += size;
filled = 1;
}
pos += size;
- if (pos < xb_size - sizeof(int))
+ if (pos < xb_size -
(int)
sizeof(int))
memcpy(&size, xb + pos, sizeof(int));
else
size = 0;
memcpy(&size, xb + pos, sizeof(int));
else
size = 0;