diff options
-rw-r--r-- | lib/oid_registry.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/oid_registry.c b/lib/oid_registry.c index 41b9e50711a7..5a75d127995d 100644 --- a/lib/oid_registry.c +++ b/lib/oid_registry.c | |||
@@ -120,10 +120,10 @@ int sprint_oid(const void *data, size_t datasize, char *buffer, size_t bufsize) | |||
120 | 120 | ||
121 | n = *v++; | 121 | n = *v++; |
122 | ret = count = snprintf(buffer, bufsize, "%u.%u", n / 40, n % 40); | 122 | ret = count = snprintf(buffer, bufsize, "%u.%u", n / 40, n % 40); |
123 | if (count >= bufsize) | ||
124 | return -ENOBUFS; | ||
123 | buffer += count; | 125 | buffer += count; |
124 | bufsize -= count; | 126 | bufsize -= count; |
125 | if (bufsize == 0) | ||
126 | return -ENOBUFS; | ||
127 | 127 | ||
128 | while (v < end) { | 128 | while (v < end) { |
129 | num = 0; | 129 | num = 0; |
@@ -141,9 +141,9 @@ int sprint_oid(const void *data, size_t datasize, char *buffer, size_t bufsize) | |||
141 | } while (n & 0x80); | 141 | } while (n & 0x80); |
142 | } | 142 | } |
143 | ret += count = snprintf(buffer, bufsize, ".%lu", num); | 143 | ret += count = snprintf(buffer, bufsize, ".%lu", num); |
144 | buffer += count; | 144 | if (count >= bufsize) |
145 | if (bufsize <= count) | ||
146 | return -ENOBUFS; | 145 | return -ENOBUFS; |
146 | buffer += count; | ||
147 | bufsize -= count; | 147 | bufsize -= count; |
148 | } | 148 | } |
149 | 149 | ||