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

Commit e4905140 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: I95c61ed83800db82e99c0023b942fb8ae05ed3cf
related-to-bug: 3338518
parent 9a0cf4fb
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -265,15 +265,17 @@ bool ASessionDescription::getDurationUs(int64_t *durationUs) const {
    const char *s = value.c_str() + 4;
    char *end;
    double from = strtod(s, &end);
    CHECK_GT(end, s);
    CHECK_EQ(*end, '-');

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

    s = end + 1;
    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);