summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/os_support.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/libavformat/os_support.c b/libavformat/os_support.c
index f1d0e0a8f1..65eb425eb3 100644
--- a/libavformat/os_support.c
+++ b/libavformat/os_support.c
@@ -41,19 +41,10 @@
int inet_aton (const char * str, struct in_addr * add)
{
- const char * pch = str;
unsigned int add1 = 0, add2 = 0, add3 = 0, add4 = 0;
- add1 = atoi(pch);
- pch = strpbrk(pch,".");
- if (!pch) return 0;
- add2 = atoi(pch);
- pch = strpbrk(pch,".");
- if (!pch) return 0;
- add3 = atoi(pch);
- pch = strpbrk(pch,".");
- if (!pch) return 0;
- add4 = atoi(pch);
+ if (sscanf(str, "%d.%d.%d.%d", &add1, &add2, &add3, &add4) != 4)
+ return 0;
if (!add1 || (add1|add2|add3|add4) > 255) return 0;