ext/yajl/yajl_buf.c in yajl-ruby-1.4.2 vs ext/yajl/yajl_buf.c in yajl-ruby-1.4.3

- old
+ new

@@ -114,13 +114,13 @@ return yajl_buf_ok; } need = buf->len; - while (want >= (need - buf->used)) need <<= 1; + while (want >= (need - buf->used) && need > 0) need <<= 1; // Check for overflow - if (need < buf->used) { + if (need < buf->used || need == 0) { return yajl_buf_set_error(buf, yajl_buf_overflow); } if (need != buf->len) { buf->data = (unsigned char *) YA_REALLOC(buf->alloc, buf->data, need);