Changeset 1719 for zzuf/trunk
- Timestamp:
- Jan 27, 2007, 4:13:34 PM (15 years ago)
- Location:
- zzuf/trunk/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
zzuf/trunk/src/fd.c
r1700 r1719 257 257 files[i].fuzz.tmp = NULL; 258 258 #endif 259 files[i].fuzz.uflag = 0; 259 260 260 261 if(autoinc) -
zzuf/trunk/src/fuzz.c
r1705 r1719 153 153 goto range_ok; 154 154 155 continue; /* Not in a range */155 continue; /* Not in one of the ranges, skip byte */ 156 156 157 157 range_ok: … … 168 168 aligned_buf[j] = byte; 169 169 } 170 } 171 172 /* Handle ungetc() */ 173 if(fuzz->uflag) 174 { 175 fuzz->uflag = 0; 176 if(fuzz->upos == pos) 177 buf[0] = fuzz->uchar; 170 178 } 171 179 } -
zzuf/trunk/src/lib-stream.c
r1712 r1719 379 379 int NEW(ungetc)(int c, FILE *stream) 380 380 { 381 unsigned char ch = c;382 381 int ret, fd; 383 382 … … 387 386 return ORIG(ungetc)(c, stream); 388 387 389 #if defined HAVE___SREFILL /* Don't fuzz or seek if we have __srefill() */ 390 #else 391 _zz_addpos(fd, -1); 392 _zz_fuzz(fd, &ch, 1); 393 #endif 394 _zz_lock(fd); 395 ret = ORIG(ungetc)((int)ch, stream); 396 _zz_unlock(fd); 397 398 if(ret >= 0) 399 ret = c; 400 #if defined HAVE___SREFILL /* Don't fuzz or seek if we have __srefill() */ 401 #else 402 else 403 _zz_addpos(fd, 1); /* revert what we did */ 404 #endif 388 _zz_lock(fd); 389 ret = ORIG(ungetc)(c, stream); 390 _zz_unlock(fd); 391 392 if(ret != EOF) 393 { 394 struct fuzz *fuzz = _zz_getfuzz(fd); 395 fuzz->uflag = 1; 396 fuzz->upos = _zz_getpos(fd) - 1; 397 fuzz->uchar = c; 398 #if defined HAVE___SREFILL /* Don't fuzz or seek if we have __srefill() */ 399 #else 400 _zz_addpos(fd, -1); 401 #endif 402 } 405 403 406 404 debug("%s(0x%02x, [%i]) = '%c'", __func__, c, fd, ret); -
zzuf/trunk/src/libzzuf.h
r1718 r1719 39 39 char *tmp; 40 40 #endif 41 int uflag; uint64_t upos; uint8_t uchar; /* ungetc stuff */ 41 42 uint8_t data[CHUNKBYTES]; 42 43 };
Note: See TracChangeset
for help on using the changeset viewer.