diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-03-30 09:11:45 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-03-30 09:11:45 +0000 |
commit | 93d9303331b7e103da810e851db1adb1fcf57f6d (patch) | |
tree | c5253848fa3a85fb6522b202addbd731cecfc870 /src/gsm_utils.c | |
parent | 5258fc4974d1d972d668c3901f5d0d019bcc5927 (diff) |
check for malloc fails
Diffstat (limited to 'src/gsm_utils.c')
-rw-r--r-- | src/gsm_utils.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gsm_utils.c b/src/gsm_utils.c index 97a81b1be..d8e085947 100644 --- a/src/gsm_utils.c +++ b/src/gsm_utils.c @@ -30,6 +30,8 @@ char *gsm_7bit_decode(u_int8_t *user_data, u_int8_t length) u_int8_t d_off = 0, b_off = 0; u_int8_t i; char *text = malloc(length+1); + if (!text) + return NULL; for (i=0;i<length;i++) { text[i] = ((user_data[d_off] + (user_data[d_off+1]<<8)) & (0x7f<<b_off))>>b_off; @@ -51,6 +53,9 @@ u_int8_t *gsm_7bit_encode(const char *data, u_int8_t *out_length) const int length = strlen(data); *out_length = (length * 8)/7; u_int8_t *result = malloc(*out_length); + if (!result) + return NULL; + memset(result, 0, *out_length); for (i = 0; i < length; ++i) { |