diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-06-03 18:51:00 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-06-03 18:51:04 +0200 |
commit | 7f97d671081978a0aafb0de03765e3a356ec7603 (patch) | |
tree | 79ed80496de3476b192445c4096b41bbbcbe5de2 /src/libmsc/db.c | |
parent | 9d61db7f065bea8d6d285b7e2871f0bbea68ca57 (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/db.c')
-rw-r--r-- | src/libmsc/db.c | 3 |
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) |