laforge has submitted this change and it was merged. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/15243 )

Change subject: mgcp_send(): stop looping on conversion error
......................................................................

mgcp_send(): stop looping on conversion error

If mgcp_send() runs a transcoder loop, break the loop if rfc5993_hr_convert()
or amr_oa_bwe_convert() return with error. Possibly fixes an infinite loop
situation for erratic packets? (Didn't check for that in detail.)

Change-Id: Iba115a0b1d74e7cefba5dcdd777e98ddea9eba8c
---
M src/libosmo-mgcp/mgcp_network.c
1 file changed, 14 insertions(+), 4 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved
  pespin: Looks good to me, approved
  osmith: Looks good to me, approved



diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c
index e163d23..53cdc06 100644
--- a/src/libosmo-mgcp/mgcp_network.c
+++ b/src/libosmo-mgcp/mgcp_network.c
@@ -870,13 +870,23 @@
                                                     addr, buf, buflen);

                        if (amr_oa_bwe_convert_indicated(conn_dst->end.codec)) {
-                               amr_oa_bwe_convert(endp, buf, &buflen,
-                                                  
conn_dst->end.codec->param.amr_octet_aligned);
+                               rc = amr_oa_bwe_convert(endp, buf, &buflen,
+                                                       
conn_dst->end.codec->param.amr_octet_aligned);
+                               if (rc < 0) {
+                                       LOGPENDP(endp, DRTP, LOGL_ERROR,
+                                                "Error in AMR octet-aligned 
<-> bandwidth-efficient mode conversion\n");
+                                       break;
+                               }
                        }
                        else if (rtp_end->rfc5993_hr_convert
                            && strcmp(conn_src->end.codec->subtype_name,
-                                     "GSM-HR-08") == 0)
-                               rfc5993_hr_convert(endp, buf, &buflen);
+                                     "GSM-HR-08") == 0) {
+                               rc = rfc5993_hr_convert(endp, buf, &buflen);
+                               if (rc < 0) {
+                                       LOGPENDP(endp, DRTP, LOGL_ERROR, "Error 
while converting to GSM-HR-08\n");
+                                       break;
+                               }
+                       }

                        LOGPENDP(endp, DRTP, LOGL_DEBUG,
                                 "process/send to %s %s "

--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/15243
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Iba115a0b1d74e7cefba5dcdd777e98ddea9eba8c
Gerrit-Change-Number: 15243
Gerrit-PatchSet: 3
Gerrit-Owner: neels <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to