diff options
author | Denis Kenzior <denkenz@gmail.com> | 2024-02-29 12:06:54 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2024-02-29 12:06:54 -0600 |
commit | 07f48b23e3877ef7d15a7b0b8b79d32ad0a3607e (patch) | |
tree | d3757e58bc530798c2ed54af1f1d430a99c38c88 | |
parent | 7f2adfa22fbae824f8e2c3ae86a3f51da31ee400 (diff) | |
download | ofono-07f48b23e3877ef7d15a7b0b8b79d32ad0a3607e.tar.gz |
simutil: Make sure set_length on the parent succeeds
-rw-r--r-- | src/simutil.c | 11 |
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) |