Diff

Differences From Artifact [9a08214b07]:

To Artifact [6ccabccf93]:


6414
6415
6416
6417
6418
6419
6420
6421
6422

6423
6424
6425
6426
6427
6428
6429
6430
			    if (num == 0) {
				is_int = FALSE;
			    } else {
				int maybe_int = FALSE, maybe_str = FALSE;
#define CHECK_HYPOTHESIS(offset, result) \
    do { \
	long q = offset; \
	if (q+4 <= len) { \
	    q = q + 4 + GET_32BIT(p+q); \

	    if (q+4 <= len && (q = q + 4 + GET_32BIT(p+q)) && q == len) \
		result = TRUE; \
	} \
    } while(0)
				CHECK_HYPOTHESIS(4+1, maybe_int);
				CHECK_HYPOTHESIS(4+num+1, maybe_str);
#undef CHECK_HYPOTHESIS
				if (maybe_int && !maybe_str)







|

>
|







6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
			    if (num == 0) {
				is_int = FALSE;
			    } else {
				int maybe_int = FALSE, maybe_str = FALSE;
#define CHECK_HYPOTHESIS(offset, result) \
    do { \
	long q = offset; \
	if (q >= 0 && q+4 <= len) { \
	    q = q + 4 + GET_32BIT(p+q); \
	    if (q >= 0 && q+4 <= len && \
		    (q = q + 4 + GET_32BIT(p+q)) && q == len) \
		result = TRUE; \
	} \
    } while(0)
				CHECK_HYPOTHESIS(4+1, maybe_int);
				CHECK_HYPOTHESIS(4+num+1, maybe_str);
#undef CHECK_HYPOTHESIS
				if (maybe_int && !maybe_str)