From: Adam Dickmeiss Date: Mon, 21 May 2012 12:46:49 +0000 (+0200) Subject: Fix bug completeBER_n WRT too nested BER X-Git-Tag: v4.2.34~16 X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=commitdiff_plain;h=1e05a7181484150177da75a3a2fb43562d2c7520 Fix bug completeBER_n WRT too nested BER Function completeBER_n could return 0 (incomplete package) in case where the BER package was considered too nested (return value of -2). --- diff --git a/src/ber_any.c b/src/ber_any.c index d5edc77..905b0c4 100644 --- a/src/ber_any.c +++ b/src/ber_any.c @@ -109,10 +109,9 @@ int completeBER_n(const unsigned char *buf, int len, int level) { if (b[0] == 0 && b[1] == 0) break; - if (!(res = completeBER_n(b, len, level+1))) - return 0; - if (res == -1) - return -1; + res = completeBER_n(b, len, level+1); + if (res <= 0) + return res; b += res; len -= res; }