aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Sperling <ssperling@sysmocom.de>2018-11-12 13:03:04 +0100
committerStefan Sperling <ssperling@sysmocom.de>2018-11-12 13:03:04 +0100
commit60509688527efdf2a90b2d4241034a9775898940 (patch)
treed35a943603f2fa4abf6ee0ae4ccb91c03983db6b
parent6eeed7c4dc6a72658009a3a88e0211d08dc2dc66 (diff)
fix bogus error check in gprs_sndcp_comp_create()
The function gprs_sndcp_get_compression_class() returns -EINVAL upon error, not -1, so an existing assertion would never trigger. Instead, check for the values we want first (PROTOCOL_COMP or DATA_COMP) and assert(false) in case the returned value doesn't match either of these. Found by: Neels Change-Id: I8444c1ed052707c76a979fb06cb018ac678defa7
-rw-r--r--src/gprs/gprs_sndcp_comp.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gprs/gprs_sndcp_comp.c b/src/gprs/gprs_sndcp_comp.c
index 60b15b9..3e02603 100644
--- a/src/gprs/gprs_sndcp_comp.c
+++ b/src/gprs/gprs_sndcp_comp.c
@@ -92,19 +92,20 @@ static struct gprs_sndcp_comp *gprs_sndcp_comp_create(const void *ctx,
* (Protocol or Data compresson ?) */
comp_entity->compclass = gprs_sndcp_get_compression_class(comp_field);
- OSMO_ASSERT(comp_entity->compclass != -1);
-
/* Create an algorithm specific compression context */
if (comp_entity->compclass == SNDCP_XID_PROTOCOL_COMPRESSION) {
if (gprs_sndcp_pcomp_init(ctx, comp_entity, comp_field) != 0) {
talloc_free(comp_entity);
comp_entity = NULL;
}
- } else {
+ } else if (comp_entity->compclass == SNDCP_XID_DATA_COMPRESSION) {
if (gprs_sndcp_dcomp_init(ctx, comp_entity, comp_field) != 0) {
talloc_free(comp_entity);
comp_entity = NULL;
}
+ } else {
+ /* comp_field is somehow invalid */
+ OSMO_ASSERT(false);
}
/* Bail on failure */