cbsp: Fix encoding of "ETWS Warning Security Info" IE

This is a fixed-length Tag-Value IE.  Our decoder already parsed
it correctly, but the encoder encoded it as TLV, which is wrong.

Change-Id: I7e1d7eab8b8e51acd9a24c38e2d3d30bbf00847a
diff --git a/src/gsm/cbsp.c b/src/gsm/cbsp.c
index b89358d..6ddef33 100644
--- a/src/gsm/cbsp.c
+++ b/src/gsm/cbsp.c
@@ -177,12 +177,15 @@
 		}
 	} else {
 		int wperiod = encode_wperiod(in->u.emergency.warning_period);
+		uint8_t *cur;
 		if (wperiod < 0)
 			return -EINVAL;
 		msgb_tv_put(msg, CBSP_IEI_EMERG_IND, in->u.emergency.indicator);
 		msgb_tv16_put(msg, CBSP_IEI_WARN_TYPE, in->u.emergency.warning_type);
-		msgb_tlv_put(msg, CBSP_IEI_WARN_SEC_INFO, sizeof(in->u.emergency.warning_sec_info),
-			     in->u.emergency.warning_sec_info);
+		/* Tag + fixed length value! */
+		msgb_put_u8(msg, CBSP_IEI_WARN_SEC_INFO);
+		cur = msgb_put(msg, sizeof(in->u.emergency.warning_sec_info));
+		memcpy(cur, in->u.emergency.warning_sec_info, sizeof(in->u.emergency.warning_sec_info));
 		msgb_tv_put(msg, CBSP_IEI_WARNING_PERIOD, wperiod);
 	}
 	return 0;