[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c
From: |
Art Heers |
Subject: |
[lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c |
Date: |
Tue, 25 Jul 2017 18:56:56 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 |
Follow-up Comment #5, bug #51520 (project lwip):
A patch with no reference to byte order: tested on a big endian machine.
/**
* Decodes integer into s32_t.
*
* @param pbuf_stream points to a pbuf stream
* @param len length of the coded integer field
* @param value return host order integer
* @return ERR_OK if successful, ERR_ARG if we can't (or won't) decode
*
* @note ASN coded integers are _always_ signed!
*/
err_t
snmp_asn1_dec_s32t(struct snmp_pbuf_stream *pbuf_stream, u16_t len, s32_t
*value)
{
u8_t data;
if ((len > 0) && (len < 5)) {
PBUF_OP_EXEC(snmp_pbuf_stream_read(pbuf_stream, &data));
if (data & 0x80) {
/* negative, start from -1 */
*value = (-1 << 8) | data;
} else {
/* positive, start from 0 */
*value = data;
}
len--;
/* shift in the remaining value */
while (len > 0) {
PBUF_OP_EXEC(snmp_pbuf_stream_read(pbuf_stream, &data));
*value = (*value << 8) | data;
len--;
}
return ERR_OK;
}
return ERR_VAL;
}
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?51520>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c, Art Heers, 2017/07/20
- [lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c, Simon Goldschmidt, 2017/07/24
- [lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c, Art Heers, 2017/07/25
- [lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c, Simon Goldschmidt, 2017/07/25
- [lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c, Dirk Ziegelmeier, 2017/07/25
- [lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c,
Art Heers <=
- [lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c, Simon Goldschmidt, 2017/07/26
- [lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c, Dirk Ziegelmeier, 2017/07/26
- [lwip-devel] [bug #51520] Big endian bug in apps/snmp/snmp_asn1.c, Dirk Ziegelmeier, 2017/07/26