check for malloc fails

diff --git a/src/gsm_utils.c b/src/gsm_utils.c
index 97a81b1..d8e0859 100644
--- a/src/gsm_utils.c
+++ b/src/gsm_utils.c
@@ -30,6 +30,8 @@
 	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 @@
 	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) {