added safety to READ_INT macro

This commit is contained in:
John Wiegley 2004-09-26 20:22:57 -04:00
parent 17808869b2
commit f32f698d7f

3
util.h
View file

@ -19,7 +19,7 @@ inline char peek_next_nonws(std::istream& in) {
#define READ_INTO(str, targ, size, var, cond) { \ #define READ_INTO(str, targ, size, var, cond) { \
char * _p = targ; \ char * _p = targ; \
var = str.peek(); \ var = str.peek(); \
while (! str.eof() && (cond)) { \ while (! str.eof() && (cond) && _p - targ < size) { \
str.get(var); \ str.get(var); \
if (str.eof()) \ if (str.eof()) \
break; \ break; \
@ -31,7 +31,6 @@ inline char peek_next_nonws(std::istream& in) {
*_p++ = var; \ *_p++ = var; \
var = str.peek(); \ var = str.peek(); \
} \ } \
assert(_p < targ + ((size) - 1)); \
*_p = '\0'; \ *_p = '\0'; \
} }