aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmsc
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-06-03 18:51:00 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2019-06-03 18:51:04 +0200
commit7f97d671081978a0aafb0de03765e3a356ec7603 (patch)
tree79ed80496de3476b192445c4096b41bbbcbe5de2 /src/libmsc
parent9d61db7f065bea8d6d285b7e2871f0bbea68ca57 (diff)
db: Fix call to mempcy with NULL src ptr
Catched by ASan on db_sms_test unit test: DDB NOTICE test_db_sms_get('Empty TP-UD'): osmo-msc/src/libmsc/db.c:796:2: runtime error: null pointer passed as argument 2, which is declared to never be null That happens on empty PDU because dbi_result_get_binary returns NULL, and sms->user_data_len is 0, so it's harmless but we can avoid calling mempcy and make ASan happy. Change-Id: I545967464c406348b8505d1729213cfb4afcd3e2
Diffstat (limited to 'src/libmsc')
-rw-r--r--src/libmsc/db.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libmsc/db.c b/src/libmsc/db.c
index add6304d0..e3995a643 100644
--- a/src/libmsc/db.c
+++ b/src/libmsc/db.c
@@ -793,7 +793,8 @@ static struct gsm_sms *sms_from_result(struct gsm_network *net, dbi_result resul
user_data = dbi_result_get_binary(result, "user_data");
if (sms->user_data_len > sizeof(sms->user_data))
sms->user_data_len = (uint8_t) sizeof(sms->user_data);
- memcpy(sms->user_data, user_data, sms->user_data_len);
+ if (user_data)
+ memcpy(sms->user_data, user_data, sms->user_data_len);
text = dbi_result_get_string(result, "text");
if (text)