Lines 78-88
asn1_error_code asn1buf_wrap_data(asn1bu
Link Here
|
78 |
|
78 |
|
79 |
asn1_error_code asn1buf_imbed(asn1buf *subbuf, const asn1buf *buf, const unsigned int length, const int indef) |
79 |
asn1_error_code asn1buf_imbed(asn1buf *subbuf, const asn1buf *buf, const unsigned int length, const int indef) |
80 |
{ |
80 |
{ |
|
|
81 |
if (buf->next > buf->bound + 1) return ASN1_OVERRUN; |
81 |
subbuf->base = subbuf->next = buf->next; |
82 |
subbuf->base = subbuf->next = buf->next; |
82 |
if (!indef) { |
83 |
if (!indef) { |
|
|
84 |
if (length > (size_t)(buf->bound + 1 - buf->next)) return ASN1_OVERRUN; |
83 |
subbuf->bound = subbuf->base + length - 1; |
85 |
subbuf->bound = subbuf->base + length - 1; |
84 |
if (subbuf->bound > buf->bound) |
|
|
85 |
return ASN1_OVERRUN; |
86 |
} else /* constructed indefinite */ |
86 |
} else /* constructed indefinite */ |
87 |
subbuf->bound = buf->bound; |
87 |
subbuf->bound = buf->bound; |
88 |
return 0; |
88 |
return 0; |
Lines 200-205
asn1_error_code asn1buf_remove_octetstri
Link Here
|
200 |
{ |
200 |
{ |
201 |
int i; |
201 |
int i; |
202 |
|
202 |
|
|
|
203 |
if (buf->next > buf->bound + 1) return ASN1_OVERRUN; |
203 |
if (len > buf->bound + 1 - buf->next) return ASN1_OVERRUN; |
204 |
if (len > buf->bound + 1 - buf->next) return ASN1_OVERRUN; |
204 |
if (len == 0) { |
205 |
if (len == 0) { |
205 |
*s = 0; |
206 |
*s = 0; |
Lines 218-223
asn1_error_code asn1buf_remove_charstrin
Link Here
|
218 |
{ |
219 |
{ |
219 |
int i; |
220 |
int i; |
220 |
|
221 |
|
|
|
222 |
if (buf->next > buf->bound + 1) return ASN1_OVERRUN; |
221 |
if (len > buf->bound + 1 - buf->next) return ASN1_OVERRUN; |
223 |
if (len > buf->bound + 1 - buf->next) return ASN1_OVERRUN; |
222 |
if (len == 0) { |
224 |
if (len == 0) { |
223 |
*s = 0; |
225 |
*s = 0; |