projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed bugs in completeBER and (serious one in) ber_oid.
[yaz-moved-to-github.git]
/
odr
/
ber_oct.c
diff --git
a/odr/ber_oct.c
b/odr/ber_oct.c
index
9b5a2fd
..
a8f6e07
100644
(file)
--- a/
odr/ber_oct.c
+++ b/
odr/ber_oct.c
@@
-4,7
+4,13
@@
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: ber_oct.c,v $
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: ber_oct.c,v $
- * Revision 1.2 1995-02-02 20:38:50 quinn
+ * Revision 1.4 1995-02-10 15:55:28 quinn
+ * Bug fixes, mostly.
+ *
+ * Revision 1.3 1995/02/03 17:04:34 quinn
+ * *** empty log message ***
+ *
+ * Revision 1.2 1995/02/02 20:38:50 quinn
* Updates.
*
* Revision 1.1 1995/02/02 16:21:52 quinn
* Updates.
*
* Revision 1.1 1995/02/02 16:21:52 quinn
@@
-14,7
+20,7
@@
#include <odr.h>
#include <odr.h>
-int ber_octetstring(ODR o, ODR_OCT *p, int cons)
+int ber_octetstring(ODR o, Odr_oct *p, int cons)
{
int res, len;
unsigned char *base, *c;
{
int res, len;
unsigned char *base, *c;
@@
-37,16
+43,15
@@
int ber_octetstring(ODR o, ODR_OCT *p, int cons)
/* primitive octetstring */
if (len < 0)
return 0;
/* primitive octetstring */
if (len < 0)
return 0;
- if (len == 0)
- return 1;
- if (len > p->size - p->len)
+ if (len + 1 > p->size - p->len)
{
c = nalloc(o, p->size += len + 1);
if (p->len)
memcpy(c, p->buf, p->len);
p->buf = c;
}
{
c = nalloc(o, p->size += len + 1);
if (p->len)
memcpy(c, p->buf, p->len);
p->buf = c;
}
- memcpy(p->buf + p->len, o->bp, len);
+ if (len)
+ memcpy(p->buf + p->len, o->bp, len);
p->len += len;
o->bp += len;
o->left -= len;
p->len += len;
o->bp += len;
o->left -= len;