mirror of https://gerrit.osmocom.org/asn1c
safety
This commit is contained in:
parent
d88bea9b11
commit
39837e6c26
|
@ -138,4 +138,12 @@ typedef unsigned int uint32_t;
|
|||
#endif /* __GNUC__ */
|
||||
#endif /* MIN */
|
||||
|
||||
#ifndef SIZE_MAX
|
||||
#define SIZE_MAX ULONG_MAX
|
||||
#endif
|
||||
|
||||
#ifndef RSIZE_MAX /* C11, Annex K */
|
||||
#define RSIZE_MAX (SIZE_MAX >> 1)
|
||||
#endif
|
||||
|
||||
#endif /* ASN_SYSTEM_H */
|
||||
|
|
|
@ -57,6 +57,9 @@ oer_fetch_length(const void *bufptr, size_t size, size_t *len_r) {
|
|||
len = (len << 8) + *b;
|
||||
}
|
||||
|
||||
if(len > RSIZE_MAX) /* A bit of C11 validation */
|
||||
return -1;
|
||||
|
||||
*len_r = len;
|
||||
assert(len_len + 1 == bend - (const uint8_t *)bufptr);
|
||||
return len_len + 1;
|
||||
|
|
Loading…
Reference in New Issue