From 6318798f54a8bd40d31af6579a54e4015f535076 Mon Sep 17 00:00:00 2001 From: Andrey Volk Date: Thu, 20 Feb 2020 02:54:13 +0400 Subject: [PATCH] [sofia-sip] scan-build: Fix dereference of null pointer in outgoing_query_results(). --- libs/sofia-sip/.update | 2 +- libs/sofia-sip/libsofia-sip-ua/nta/nta.c | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index 9e9891a5b4..4aee8f62bb 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Wed Feb 19 21:45:20 UTC 2020 +Wed Feb 19 22:50:10 UTC 2020 diff --git a/libs/sofia-sip/libsofia-sip-ua/nta/nta.c b/libs/sofia-sip/libsofia-sip-ua/nta/nta.c index ef939f895f..e5f60e91ee 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nta/nta.c +++ b/libs/sofia-sip/libsofia-sip-ua/nta/nta.c @@ -9963,10 +9963,16 @@ static int outgoing_query_a(nta_outgoing_t *orq, struct sipdns_query *); static void outgoing_answer_a(sres_context_t *orq, sres_query_t *q, sres_record_t *answers[]); +#ifdef __clang_analyzer__ +#define FUNC_ATTR_NONNULL(...) __attribute__((nonnull(__VA_ARGS__))) +#else +#define FUNC_ATTR_NONNULL(...) +#endif + static void outgoing_query_results(nta_outgoing_t *orq, struct sipdns_query *sq, char *results[], - size_t rlen); + size_t rlen) FUNC_ATTR_NONNULL(3); #define SIPDNS_503_ERROR 503, "DNS Error" @@ -10793,7 +10799,8 @@ void outgoing_answer_aaaa(sres_context_t *orq, sres_query_t *q, sres_free_answers(orq->orq_agent->sa_resolver, answers); - outgoing_query_results(orq, sq, results, found); + if (results) + outgoing_query_results(orq, sq, results, found); } #endif /* SU_HAVE_IN6 */ @@ -10875,7 +10882,8 @@ void outgoing_answer_a(sres_context_t *orq, sres_query_t *q, sres_free_answers(orq->orq_agent->sa_resolver, answers); - outgoing_query_results(orq, sq, results, found); + if (results) + outgoing_query_results(orq, sq, results, found); } /** Store A/AAAA query results */