X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fber_any.c;h=8899dde4cbea72ffb1aad357e2e3602a17d35ab2;hp=b3003151782dd7bfa143249d8dc5d8d5be78e4dc;hb=fb6d99a0c7e07d9cc4a315c447deaf6564a85505;hpb=67002f49611adb64993391b0cbf6c235f18080a4 diff --git a/src/ber_any.c b/src/ber_any.c index b300315..8899dde 100644 --- a/src/ber_any.c +++ b/src/ber_any.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: ber_any.c,v 1.3 2005-01-15 19:47:11 adam Exp $ + * $Id: ber_any.c,v 1.4 2005-06-25 15:46:03 adam Exp $ */ /** @@ -58,23 +58,23 @@ int completeBER_n(const unsigned char *buf, int len, int level) if (len > 5000000 || level > 1000) { - bad = 1; + bad = 1; #if BER_ANY_DEBUG - yaz_log(LOG_LOG, "completeBER lev=%d len=%d", level, len); + yaz_log(LOG_LOG, "completeBER lev=%d len=%d", level, len); #endif - if (level > 1000) - return -2; + if (level > 1000) + return -2; } if (len < 2) - return 0; + return 0; if (!buf[0] && !buf[1]) - return -2; + return -2; if ((res = ber_dectag(b, &zclass, &tag, &cons, len)) <= 0) - return 0; + return 0; #if 0 /* removed, since ber_dectag never reads that far .. */ if (res > len) - return 0; + return 0; #endif b += res; len -= res; @@ -83,36 +83,36 @@ int completeBER_n(const unsigned char *buf, int len, int level) if (res == -2) { #if BER_ANY_DEBUG - if (bad) - yaz_log(LOG_LOG, "<<<<<<<<< return1 lev=%d res=%d", level, res); + if (bad) + yaz_log(LOG_LOG, "<<<<<<<<< return1 lev=%d res=%d", level, res); #endif - return -1; /* error */ + return -1; /* error */ } if (res == -1) { #if BER_ANY_DEBUG - if (bad) - yaz_log(LOG_LOG, "<<<<<<<<< return3 lev=%d res=-1", level); + if (bad) + yaz_log(LOG_LOG, "<<<<<<<<< return3 lev=%d res=-1", level); #endif - return 0; /* incomplete length */ + return 0; /* incomplete length */ } if (ll > 5000000) { #if BER_ANY_DEBUG - if (bad) - yaz_log(LOG_LOG, "<<<<<<<<< return2 lev=%d len=%d res=%d ll=%d", - level, len, res, ll); + if (bad) + yaz_log(LOG_LOG, "<<<<<<<<< return2 lev=%d len=%d res=%d ll=%d", + level, len, res, ll); #endif - return -1; /* error */ + return -1; /* error */ } #if 0 /* no longer necessary, since ber_declen never reads that far (returns -1) */ if (res > len) { - if (bad) - yaz_log(LOG_LOG, "<<<<<<<<< return4 lev=%d res=%d len=%d", - level, res, len); - return 0; + if (bad) + yaz_log(LOG_LOG, "<<<<<<<<< return4 lev=%d res=%d len=%d", + level, res, len); + return 0; } #endif b += res; @@ -120,35 +120,35 @@ int completeBER_n(const unsigned char *buf, int len, int level) if (ll >= 0) { /* definite length */ #if BER_ANY_DEBUG - if (bad && len < ll) - yaz_log(LOG_LOG, "<<<<<<<<< return5 lev=%d len=%d ll=%d", - level, len, ll); + if (bad && len < ll) + yaz_log(LOG_LOG, "<<<<<<<<< return5 lev=%d len=%d ll=%d", + level, len, ll); #endif - return (len >= ll ? ll + (b-buf) : 0); + return (len >= ll ? ll + (b-buf) : 0); } /* indefinite length */ if (!cons) { /* if primitive, it's an error */ #if BER_ANY_DEBUG - yaz_log(LOG_LOG, "<<<<<<<<< return6 lev=%d ll=%d len=%d res=%d", - level, ll, len, res); + yaz_log(LOG_LOG, "<<<<<<<<< return6 lev=%d ll=%d len=%d res=%d", + level, ll, len, res); #endif - return -1; /* error */ + return -1; /* error */ } /* constructed - cycle through children */ while (len >= 2) { - if (b[0] == 0 && b[1] == 0) - break; - if (!(res = completeBER_n(b, len, level+1))) - return 0; - if (res == -1) - return -1; - b += res; - len -= res; + if (b[0] == 0 && b[1] == 0) + break; + if (!(res = completeBER_n(b, len, level+1))) + return 0; + if (res == -1) + return -1; + b += res; + len -= res; } if (len < 2) - return 0; + return 0; return (b - buf) + 2; } @@ -156,6 +156,14 @@ int completeBER(const unsigned char *buf, int len) { int res = completeBER_n(buf, len, 0); if (res < 0) - return len; + return len; return res; } +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +