Fix potential bug in case of ill-formed serialized container.
This commit is contained in:
1 parent
2e564088b0
commit
95f467f4be
5 files changed
+15
-10
No files matched your search
@@ -677,9 +677,10 @@
|
||||
assert (file != NULL); \
|
||||
M_C(name,_clean)(array); \
|
||||
int c = fgetc(file); \
|
||||
if (c != '[') return false; \
|
||||
if (M_UNLIKELY (c != '[')) return false; \
|
||||
c = fgetc(file); \
|
||||
if (c == ']') return true; \
|
||||
if (M_UNLIKELY (c == ']')) return true; \
|
||||
if (M_UNLIKELY (c == EOF)) return false; \
|
||||
ungetc(c, file); \
|
||||
type item; \
|
||||
M_GET_INIT oplist (item); \
|
||||
|
||||
@@ -687,9 +687,10 @@
|
||||
assert (file != NULL); \
|
||||
M_C(name,_clean)(deque); \
|
||||
int c = fgetc(file); \
|
||||
if (c != '[') return false; \
|
||||
if (M_UNLIKELY (c != '[')) return false; \
|
||||
c = fgetc(file); \
|
||||
if (c == ']') return true; \
|
||||
if (M_UNLIKELY (c == ']')) return true; \
|
||||
if (M_UNLIKELY (c == EOF)) return false; \
|
||||
ungetc(c, file); \
|
||||
type item; \
|
||||
M_GET_INIT oplist (item); \
|
||||
|
||||
@@ -504,9 +504,10 @@
|
||||
DICTI_CONTRACT(name, dict); \
|
||||
M_C(name, _clean)(dict); \
|
||||
int c = fgetc(file); \
|
||||
if (c != '{') return false; \
|
||||
if (M_UNLIKELY (c != '{')) return false; \
|
||||
c = fgetc(file); \
|
||||
if (c == '}') return true; \
|
||||
if (M_UNLIKELY (c == '}')) return true; \
|
||||
if (M_UNLIKELY (c == EOF)) return true; \
|
||||
ungetc(c, file); \
|
||||
key_type key; \
|
||||
M_IF(isSet)( ,value_type value); \
|
||||
|
||||
@@ -525,9 +525,10 @@
|
||||
assert (file != NULL && list != NULL); \
|
||||
M_C(name,_clean)(list); \
|
||||
int c = fgetc(file); \
|
||||
if (c != '[') return false; \
|
||||
if (M_UNLIKELY (c != '[')) return false; \
|
||||
c = fgetc(file); \
|
||||
if (c == ']') return true; \
|
||||
if (M_UNLIKELY (c == ']')) return true; \
|
||||
if (M_UNLIKELY (c == EOF)) return false; \
|
||||
ungetc(c, file); \
|
||||
type item; \
|
||||
M_GET_INIT oplist (item); \
|
||||
|
||||
+3
-2
@@ -948,9 +948,10 @@ typedef enum {
|
||||
assert (file != NULL); \
|
||||
M_C(name,_clean)(rbtree); \
|
||||
int c = fgetc(file); \
|
||||
if (c != '[') return false; \
|
||||
if (M_UNLIKELY (c != '[')) return false; \
|
||||
c = fgetc(file); \
|
||||
if (c == ']') return true; \
|
||||
if (M_UNLIKELY (c == ']')) return true; \
|
||||
if (M_UNLIKELY (c == EOF)) return false; \
|
||||
ungetc(c, file); \
|
||||
type item; \
|
||||
M_GET_INIT oplist (item); \
|
||||
|
||||
Reference in new issue
Block a user