Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4bca5e19 authored by Andreas Huber's avatar Andreas Huber
Browse files

Fail to parse duration instead of asserting, if the server response cannot be parsed.

Change-Id: I42324468edca5ccce29486059091da8e64f36326
related-to-bug: 3338518
parent 688b0af6
Loading
Loading
Loading
Loading
+7 −5
Original line number Original line Diff line number Diff line
@@ -265,15 +265,17 @@ bool ASessionDescription::getDurationUs(int64_t *durationUs) const {
    const char *s = value.c_str() + 4;
    const char *s = value.c_str() + 4;
    char *end;
    char *end;
    double from = strtod(s, &end);
    double from = strtod(s, &end);
    CHECK_GT(end, s);

    CHECK_EQ(*end, '-');
    if (end == s || *end != '-') {
        return false;
    }


    s = end + 1;
    s = end + 1;
    double to = strtod(s, &end);
    double to = strtod(s, &end);
    CHECK_GT(end, s);
    CHECK_EQ(*end, '\0');


    CHECK_GE(to, from);
    if (end == s || *end != '\0' || to < from) {
        return false;
    }


    *durationUs = (int64_t)((to - from) * 1E6);
    *durationUs = (int64_t)((to - from) * 1E6);