diff options
Diffstat (limited to 'net/dns_resolver/dns_query.c')
| -rw-r--r-- | net/dns_resolver/dns_query.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/dns_resolver/dns_query.c b/net/dns_resolver/dns_query.c index 03d5255f5cf2..c32be292c7e3 100644 --- a/net/dns_resolver/dns_query.c +++ b/net/dns_resolver/dns_query.c | |||
| @@ -136,6 +136,11 @@ int dns_query(const char *type, const char *name, size_t namelen, | |||
| 136 | if (ret < 0) | 136 | if (ret < 0) |
| 137 | goto put; | 137 | goto put; |
| 138 | 138 | ||
| 139 | /* If the DNS server gave an error, return that to the caller */ | ||
| 140 | ret = rkey->type_data.x[0]; | ||
| 141 | if (ret) | ||
| 142 | goto put; | ||
| 143 | |||
| 139 | upayload = rcu_dereference_protected(rkey->payload.data, | 144 | upayload = rcu_dereference_protected(rkey->payload.data, |
| 140 | lockdep_is_held(&rkey->sem)); | 145 | lockdep_is_held(&rkey->sem)); |
| 141 | len = upayload->datalen; | 146 | len = upayload->datalen; |
