X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fber_int.c;h=4d126dbbca5afff46e011ac1157ad00eaa31c0b0;hp=786321edfa6a2ae2a530f0354219bec0938286a3;hb=51e1ca7946289042c3c09e92afc1c1c465f5d870;hpb=ffe862e36b8b60b1197b223cec0b78482cbd7763 diff --git a/src/ber_int.c b/src/ber_int.c index 786321e..4d126db 100644 --- a/src/ber_int.c +++ b/src/ber_int.c @@ -1,9 +1,9 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2010 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ -/** +/** * \file ber_int.c * \brief Implements BER INTEGER encoding and decoding. * @@ -28,7 +28,7 @@ #include "odr-priv.h" static int ber_encinteger(ODR o, Odr_int val); -static int ber_decinteger(const unsigned char *buf, Odr_int *val, int max); +static int ber_decinteger(const char *buf, Odr_int *val, int max); int ber_integer(ODR o, Odr_int *val) { @@ -37,12 +37,12 @@ int ber_integer(ODR o, Odr_int *val) switch (o->direction) { case ODR_DECODE: - if ((res = ber_decinteger(o->bp, val, odr_max(o))) <= 0) + if ((res = ber_decinteger(o->op->bp, val, odr_max(o))) <= 0) { odr_seterror(o, OPROTO, 50); return 0; } - o->bp += res; + o->op->bp += res; return 1; case ODR_ENCODE: if ((res = ber_encinteger(o, *val)) < 0) @@ -77,7 +77,7 @@ int ber_encinteger(ODR o, Odr_int val) len = sizeof(uval) - i; if (ber_enclen(o, len, 1, 1) != 1) return -1; - if (odr_write(o, (unsigned char*) tmp + i, len) < 0) + if (odr_write(o, (const char *) tmp + i, len) < 0) return -1; return 0; } @@ -85,17 +85,17 @@ int ber_encinteger(ODR o, Odr_int val) /* * Returns: Number of bytes read or 0 if no match, -1 if error. */ -int ber_decinteger(const unsigned char *buf, Odr_int *val, int max) +int ber_decinteger(const char *buf, Odr_int *val, int max) { unsigned long long uval = 0; int i, len; int res; - const unsigned char *b = buf; + const unsigned char *b = (const unsigned char *) buf; - if ((res = ber_declen(b, &len, max)) < 0) + if ((res = ber_declen((const char *) b, &len, max)) < 0) return -1; if (len+res > max || len < 0) /* out of bounds or indefinite encoding */ - return -1; + return -1; if (len > (int) sizeof(uval)) /* let's be reasonable, here */ return -1; b += res; @@ -107,7 +107,7 @@ int ber_decinteger(const unsigned char *buf, Odr_int *val, int max) uval = (uval << 8) + b[i]; *val = uval; b += len; - return b - buf; + return (const char *) b - buf; } /* * Local variables: