parse-util: backport safe_atou32_full()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 23 Jun 2020 07:10:25 +0000 (09:10 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 23 Jun 2020 09:31:16 +0000 (11:31 +0200)
We need this for a follow up security fix.

(cherry picked from commit b934ac3d6e7dcad114776ef30ee9098693e7ab7e)

src/basic/parse-util.h

index 6b30c727e3f98f1cb0e712a2983700caff6c5733..36d76ba57617b5f98bc9c4a371e2593881935655 100644 (file)
@@ -45,9 +45,13 @@ static inline int safe_atoux16(const char *s, uint16_t *ret) {
 
 int safe_atoi16(const char *s, int16_t *ret);
 
-static inline int safe_atou32(const char *s, uint32_t *ret_u) {
+static inline int safe_atou32_full(const char *s, unsigned base, uint32_t *ret_u) {
         assert_cc(sizeof(uint32_t) == sizeof(unsigned));
-        return safe_atou(s, (unsigned*) ret_u);
+        return safe_atou_full(s, base, (unsigned*) ret_u);
+}
+
+static inline int safe_atou32(const char *s, uint32_t *ret_u) {
+        return safe_atou32_full(s, 0, (unsigned*) ret_u);
 }
 
 static inline int safe_atoi32(const char *s, int32_t *ret_i) {