projects
/
platform
/
upstream
/
c-ares.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed build error
[platform/upstream/c-ares.git]
/
ares_parse_naptr_reply.c
diff --git
a/ares_parse_naptr_reply.c
b/ares_parse_naptr_reply.c
index
6a9d09e
..
4935366
100644
(file)
--- a/
ares_parse_naptr_reply.c
+++ b/
ares_parse_naptr_reply.c
@@
-17,9
+17,6
@@
#include "ares_setup.h"
#include "ares_setup.h"
-#ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
@@
-38,8
+35,6
@@
# include <arpa/nameser_compat.h>
#endif
# include <arpa/nameser_compat.h>
#endif
-#include <stdlib.h>
-#include <string.h>
#include "ares.h"
#include "ares_dns.h"
#include "ares_data.h"
#include "ares.h"
#include "ares_dns.h"
#include "ares_data.h"
@@
-110,6
+105,11
@@
ares_parse_naptr_reply (const unsigned char *abuf, int alen,
rr_class = DNS_RR_CLASS (aptr);
rr_len = DNS_RR_LEN (aptr);
aptr += RRFIXEDSZ;
rr_class = DNS_RR_CLASS (aptr);
rr_len = DNS_RR_LEN (aptr);
aptr += RRFIXEDSZ;
+ if (aptr + rr_len > abuf + alen)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
/* Check if we are really looking at a NAPTR record */
if (rr_class == C_IN && rr_type == T_NAPTR)
/* Check if we are really looking at a NAPTR record */
if (rr_class == C_IN && rr_type == T_NAPTR)