aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2024-02-29 12:06:54 -0600
committerDenis Kenzior <denkenz@gmail.com>2024-02-29 12:06:54 -0600
commit07f48b23e3877ef7d15a7b0b8b79d32ad0a3607e (patch)
treed3757e58bc530798c2ed54af1f1d430a99c38c88
parent7f2adfa22fbae824f8e2c3ae86a3f51da31ee400 (diff)
downloadofono-07f48b23e3877ef7d15a7b0b8b79d32ad0a3607e.tar.gz
simutil: Make sure set_length on the parent succeeds
-rw-r--r--src/simutil.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/simutil.c b/src/simutil.c
index a4a8f8c4b..543ab9962 100644
--- a/src/simutil.c
+++ b/src/simutil.c
@@ -588,8 +588,9 @@ gboolean ber_tlv_builder_set_length(struct ber_tlv_builder *builder,
if (new_pos > builder->max)
return FALSE;
- if (builder->parent)
- ber_tlv_builder_set_length(builder->parent, new_pos);
+ if (builder->parent &&
+ !ber_tlv_builder_set_length(builder->parent, new_pos))
+ return FALSE;
builder->len = new_len;
@@ -730,9 +731,9 @@ gboolean comprehension_tlv_builder_set_length(
if (builder->pos + new_ctlv_len > builder->max)
return FALSE;
- if (builder->parent)
- ber_tlv_builder_set_length(builder->parent,
- builder->pos + new_ctlv_len);
+ if (builder->parent && !ber_tlv_builder_set_length(builder->parent,
+ builder->pos + new_ctlv_len))
+ return FALSE;
len = MIN(builder->len, new_len);
if (len > 0 && new_len_size != len_size)