diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c
index 1aeca0f..879cbe0 100644
--- a/src/tests/hnb-test.c
+++ b/src/tests/hnb-test.c
@@ -249,6 +249,10 @@
 	}
 
 	gh = (struct gsm48_hdr *) msgb_l3(rxm);
+	if (!gh) {
+		printf("received msg buffer with invalid layer 3. Ignoring.\n");
+		return -1;
+	}
 	length -= (const char *)&gh->data[0] - (const char *)gh;
 
 	parse_res = tlv_parse(&tp, &gsm48_mm_att_tlvdef, &gh->data[0], length, 0, 0);
@@ -274,6 +278,10 @@
 	}
 
 	gh = (struct gsm48_hdr *)msgb_l3(rxm);
+	if (!gh) {
+		printf("received msg buffer with invalid layer 3. Ignoring.\n");
+		return -1;
+	}
 	lai = (struct gsm48_loc_area_id *)&gh->data[0];
 
 	uint16_t mcc, mnc, lac;
@@ -337,6 +345,10 @@
 	}
 
 	gh = (struct gsm48_hdr *) msgb_l3(rxm);
+	if (!gh) {
+		printf("received msg buffer with invalid layer 3. Ignoring.\n");
+		return -1;
+	}
 	length -= (const char *)&gh->data[0] - (const char *)gh;
 
 	if (length < sizeof(*ar)) {
@@ -364,6 +376,10 @@
 	OSMO_ASSERT(!chan->is_ps);
 
 	struct gsm48_hdr *gh = msgb_l3(rxm);
+	if (!gh) {
+		printf("received msg buffer with invalid layer 3. Ignoring.\n");
+		return -1;
+	}
 	uint8_t msg_type = gsm48_hdr_msg_type(gh);
 	int sent_tmsi;
 
@@ -407,6 +423,10 @@
 	//            '05 04 0d' ==> LU reject
 
 	struct gsm48_hdr *gh = msgb_l3(msg);
+	if (!gh) {
+		printf("received msg buffer with invalid layer 3. Ignoring.\n");
+		return -1;
+	}
 	uint8_t pdisc = gsm48_hdr_pdisc(gh);
 
 	switch (pdisc) {
