SMS: fix parsing of destination phone number
diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c
index 85ff464..3d5820d 100644
--- a/openbsc/src/gsm_04_11.c
+++ b/openbsc/src/gsm_04_11.c
@@ -186,11 +186,12 @@
 		rc = -EIO;
 		goto out;
 	}
+	memset(address_lv, 0, sizeof(address_lv));
 	memcpy(address_lv, smsp, da_len_bytes);
 	/* mangle first byte to reflect length in bytes, not digits */
-	address_lv[0] = da_len_bytes;
+	address_lv[0] = da_len_bytes - 1;
 	/* convert to real number */
-	decode_bcd_number(sms->dest_addr, sizeof(sms->dest_addr), address_lv, 0);
+	decode_bcd_number(sms->dest_addr, sizeof(sms->dest_addr), address_lv, 1);
 
 	smsp += da_len_bytes;