--- t2sami/trunk/PS.cpp 2007/09/09 23:26:20 254 +++ t2sami/trunk/PS.cpp 2011/04/25 03:37:29 255 @@ -204,13 +204,14 @@ for(;;) { - if( buf[pos] != 0 ) - if( buf_len-pos > 4 ) { + if( buf_len-pos > 4 ) + if( buf[pos] != 0 ) { byte *p = (byte *)memchr( &buf[pos], 0, buf_len-pos ); if( p != NULL ) { ptrdiff_t nch = p - &buf[pos]; + assert(nch >= 0); pos += nch; dif += nch; @@ -262,6 +263,7 @@ void CPs::skip_info(int n_bytes) { + assert(n_bytes >= 0); check_buffer(n_bytes); pos=pos+n_bytes; } @@ -269,6 +271,7 @@ int CPs::ret_value(int n_bytes) { int val; + assert(n_bytes >= 0); check_buffer(n_bytes); val = b.ret_value(buf,(int)pos,(int)pos+n_bytes-1); pos=pos+n_bytes; @@ -324,6 +327,7 @@ void CPs::go_back(int step) { + assert(-step <= pos); pos=pos-step; }