[system_information] Initialize the buffer before moving it

In the case of ipaccess we are doing a ++output but then still
try to write 23 bytes into it and on my system this is leading
to a stack corruption.
diff --git a/openbsc/src/system_information.c b/openbsc/src/system_information.c
index 7fd1234..9bdf2c1 100644
--- a/openbsc/src/system_information.c
+++ b/openbsc/src/system_information.c
@@ -342,6 +342,8 @@
 	struct gsm48_system_information_type_5 *si5;
 	int rc, l2_plen = 18;
 
+	memset(output, GSM_MACBLOCK_PADDING, GSM_MACBLOCK_LEN);
+
 	/* ip.access nanoBTS needs l2_plen!! */
 	if (is_ipaccess_bts(bts)) {
 		*output++ = (l2_plen << 2) | 1;
@@ -349,7 +351,6 @@
 	}
 
 	si5 = (struct gsm48_system_information_type_5 *) output;
-	memset(si5, GSM_MACBLOCK_PADDING, GSM_MACBLOCK_LEN);
 
 	/* l2 pseudo length, not part of msg: 18 */
 	si5->rr_protocol_discriminator = GSM48_PDISC_RR;
@@ -368,6 +369,8 @@
 	struct gsm48_system_information_type_6 *si6;
 	int l2_plen = 11;
 
+	memset(output, GSM_MACBLOCK_PADDING, GSM_MACBLOCK_LEN);
+
 	/* ip.access nanoBTS needs l2_plen!! */
 	if (is_ipaccess_bts(bts)) {
 		*output++ = (l2_plen << 2) | 1;
@@ -375,7 +378,6 @@
 	}
 
 	si6 = (struct gsm48_system_information_type_6 *) output;
-	memset(si6, GSM_MACBLOCK_PADDING, GSM_MACBLOCK_LEN);
 
 	/* l2 pseudo length, not part of msg: 11 */
 	si6->rr_protocol_discriminator = GSM48_PDISC_RR;