summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2014-06-13 17:16:49 +0800
committerTing-Wei Lan <lantw44@gmail.com>2014-06-13 17:16:49 +0800
commit1bff9c9f0444630c630e5363fc28ede34574b455 (patch)
treef3ba9f3f77e07c6efd0cb14d95368b0d62640c70
parentdf4a8e8afc7fc56ca16e1c12f3d44e0746d08fb9 (diff)
downloadfastalg-protocol-1bff9c9f0444630c630e5363fc28ede34574b455.tar.gz
fastalg-protocol-1bff9c9f0444630c630e5363fc28ede34574b455.tar.zst
fastalg-protocol-1bff9c9f0444630c630e5363fc28ede34574b455.zip
dns: Fix buffer overflow when input is invalid
-rw-r--r--falgproto/falgproto-protocol-dns.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/falgproto/falgproto-protocol-dns.c b/falgproto/falgproto-protocol-dns.c
index 467b35d..5614024 100644
--- a/falgproto/falgproto-protocol-dns.c
+++ b/falgproto/falgproto-protocol-dns.c
@@ -45,6 +45,9 @@ static inline ssize_t get_question_name (
out[j] = pkt[i];
}
}
+ if (i >= len) {
+ return -1;
+ }
if (out != NULL) {
if (pkt[i] != 0) {
out[j] = '.';
@@ -55,7 +58,6 @@ static inline ssize_t get_question_name (
}
if (pkt[i] != 0) {
- printf ("%hhu %c\n", pkt[i], pkt[i]);
return -1;
}