memory OOB issue on Windows and with non-standard allocators; by Sheng Yu

git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1407 59561ff5-6e30-0410-9f3c-9617f08c8826
This commit is contained in:
vlm 2008-11-20 05:15:11 +00:00
parent 86058b318e
commit d02b460727
2 changed files with 6 additions and 3 deletions

View File

@ -1,5 +1,5 @@
0.9.22: 2007-Jun-29
0.9.22: 2008-Nov-19
* Added -pdu=all and -pdu=<type> switches to asn1c.
* Added PER support for most known-multiplier string types:
@ -18,6 +18,9 @@
* Added DEFAULT handling for known multiplier string.
* Added a sample OMA ULP decoder (./examples/sample.source.ULP).
* Added full-width 32-bit integer encoding support in PER.
* Fixed 1-byte OOB write issue with non-standard and Windows
memory allocators (Severity: low; Security impact: medium).
Reported by Sheng Yu.
0.9.21: 2006-Sep-17

View File

@ -868,8 +868,8 @@ asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) {
end = buf + (sizeof(value) + 1);
buf[0] = 0;
for(b = buf, shr = (sizeof(long)-1)*8; b < end; shr -= 8)
*(++b) = (uint8_t)(value >> shr);
for(b = buf + 1, shr = (sizeof(long)-1)*8; b < end; shr -= 8, b++)
*b = (uint8_t)(value >> shr);
if(st->buf) FREEMEM(st->buf);
st->buf = buf;