|
| 1 | +From 807afc14f3fcd105d6e466db027b3542f8632fe2 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Alex Rousskov < [email protected]> |
| 3 | +Date: Fri, 29 Aug 2025 10:08:59 -0400 |
| 4 | +Subject: [PATCH] Support ASN.1 encoding of long SNMP OIDs |
| 5 | + |
| 6 | +Signed-off-by: Azure Linux Security Servicing Account < [email protected]> |
| 7 | +Upstream-reference: https://patch-diff.githubusercontent.com/raw/squid-cache/squid/pull/2149.patch |
| 8 | +--- |
| 9 | + lib/snmplib/asn1.c | 13 +++++++++++++ |
| 10 | + 1 file changed, 13 insertions(+) |
| 11 | + |
| 12 | +diff --git a/lib/snmplib/asn1.c b/lib/snmplib/asn1.c |
| 13 | +index 9d2d799..142c103 100644 |
| 14 | +--- a/lib/snmplib/asn1.c |
| 15 | ++++ b/lib/snmplib/asn1.c |
| 16 | +@@ -735,6 +735,7 @@ asn_build_objid(u_char * data, int *datalength, |
| 17 | + * lastbyte ::= 0 7bitvalue |
| 18 | + */ |
| 19 | + u_char buf[MAX_OID_LEN]; |
| 20 | ++ u_char *bufEnd = buf + sizeof(buf); |
| 21 | + u_char *bp = buf; |
| 22 | + oid *op = objid; |
| 23 | + int asnlength; |
| 24 | +@@ -753,6 +754,10 @@ asn_build_objid(u_char * data, int *datalength, |
| 25 | + while (objidlength-- > 0) { |
| 26 | + subid = *op++; |
| 27 | + if (subid < 127) { /* off by one? */ |
| 28 | ++ if (bp >= bufEnd) { |
| 29 | ++ snmp_set_api_error(SNMPERR_ASN_ENCODE); |
| 30 | ++ return (NULL); |
| 31 | ++ } |
| 32 | + *bp++ = subid; |
| 33 | + } else { |
| 34 | + mask = 0x7F; /* handle subid == 0 case */ |
| 35 | +@@ -770,8 +775,16 @@ asn_build_objid(u_char * data, int *datalength, |
| 36 | + /* fix a mask that got truncated above */ |
| 37 | + if (mask == 0x1E00000) |
| 38 | + mask = 0xFE00000; |
| 39 | ++ if (bp >= bufEnd) { |
| 40 | ++ snmp_set_api_error(SNMPERR_ASN_ENCODE); |
| 41 | ++ return (NULL); |
| 42 | ++ } |
| 43 | + *bp++ = (u_char) (((subid & mask) >> bits) | ASN_BIT8); |
| 44 | + } |
| 45 | ++ if (bp >= bufEnd) { |
| 46 | ++ snmp_set_api_error(SNMPERR_ASN_ENCODE); |
| 47 | ++ return (NULL); |
| 48 | ++ } |
| 49 | + *bp++ = (u_char) (subid & mask); |
| 50 | + } |
| 51 | + } |
| 52 | +-- |
| 53 | +2.45.4 |
| 54 | + |
0 commit comments