smscb: Prepare to fill in the info for CBCH in SI4

Pass the number of bytes the rest octet for si4 should
fill.
diff --git a/openbsc/src/libbsc/rest_octets.c b/openbsc/src/libbsc/rest_octets.c
index 41bf505..4545794 100644
--- a/openbsc/src/libbsc/rest_octets.c
+++ b/openbsc/src/libbsc/rest_octets.c
@@ -141,13 +141,13 @@
 }
 
 /* Generate SI4 Rest Octets (Chapter 10.5.2.35) */
-int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4)
+int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4, int len)
 {
 	struct bitvec bv;
 
 	memset(&bv, 0, sizeof(bv));
 	bv.data = data;
-	bv.data_len = 10; /* FIXME: up to ? */
+	bv.data_len = len;
 
 	/* SI4 Rest Octets O */
 	append_selection_params(&bv, &si4->selection_params);
diff --git a/openbsc/src/libbsc/system_information.c b/openbsc/src/libbsc/system_information.c
index 8a6d026..5071b06 100644
--- a/openbsc/src/libbsc/system_information.c
+++ b/openbsc/src/libbsc/system_information.c
@@ -595,7 +595,7 @@
 	/* SI4 Rest Octets (10.5.2.35), containing
 		Optional Power offset, GPRS Indicator,
 		Cell Identity, LSA ID, Selection Parameter */
-	rc = rest_octets_si4(restoct, &si_info);
+	rc = rest_octets_si4(restoct, &si_info, output + GSM_MACBLOCK_LEN - restoct);
 
 	return l2_plen + 1 + rc;
 }