--- a/bencode.cpp +++ b/bencode.cpp @@ -44,6 +44,10 @@ size_t buf_long(const char *b,size_t len p++; len--; } + if( *p == '-'){ + p++; len--; + } + for(psave = p; len && isdigit(*p); p++,len--) ; if(!len || MAX_INT_SIZ < (p - psave) || *p != endchar) return 0;