diff options
Diffstat (limited to 'networking/dnsd.c')
-rw-r--r-- | networking/dnsd.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/networking/dnsd.c b/networking/dnsd.c index e73e244b0..6771c5346 100644 --- a/networking/dnsd.c +++ b/networking/dnsd.c | |||
@@ -376,11 +376,6 @@ static int process_packet(struct dns_entry *conf_data, | |||
376 | /* QR = 1 "response", RCODE = 4 "Not Implemented" */ | 376 | /* QR = 1 "response", RCODE = 4 "Not Implemented" */ |
377 | outr_flags = htons(0x8000 | 4); | 377 | outr_flags = htons(0x8000 | 4); |
378 | err_msg = NULL; | 378 | err_msg = NULL; |
379 | /* OPCODE != 0 "standard query" ? */ | ||
380 | if ((head->flags & htons(0x7800)) != 0) { | ||
381 | err_msg = "opcode != 0"; | ||
382 | goto empty_packet; | ||
383 | } | ||
384 | 379 | ||
385 | /* start of query string */ | 380 | /* start of query string */ |
386 | query_string = (void *)(head + 1); | 381 | query_string = (void *)(head + 1); |
@@ -392,6 +387,11 @@ static int process_packet(struct dns_entry *conf_data, | |||
392 | /* where to append answer block */ | 387 | /* where to append answer block */ |
393 | answb = (void *)(unaligned_type_class + 1); | 388 | answb = (void *)(unaligned_type_class + 1); |
394 | 389 | ||
390 | /* OPCODE != 0 "standard query"? */ | ||
391 | if ((head->flags & htons(0x7800)) != 0) { | ||
392 | err_msg = "opcode != 0"; | ||
393 | goto empty_packet; | ||
394 | } | ||
395 | move_from_unaligned16(class, &unaligned_type_class->class); | 395 | move_from_unaligned16(class, &unaligned_type_class->class); |
396 | if (class != htons(1)) { /* not class INET? */ | 396 | if (class != htons(1)) { /* not class INET? */ |
397 | err_msg = "class != 1"; | 397 | err_msg = "class != 1"; |