Skip to content

Commit 545c141

Browse files
jpnurmicodex
andcommitted
fix: Avoid signed ISO8601 length sentinel
Use 0 to request parsing the full null-terminated ISO8601 string. This keeps call sites clean and avoids MSVC signed/unsigned conversion warnings. Co-Authored-By: OpenAI Codex <noreply@openai.com>
1 parent 445d146 commit 545c141

3 files changed

Lines changed: 5 additions & 5 deletions

File tree

src/sentry_session.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ sentry__session_from_json(const char *buf, size_t buflen)
182182
rv->errors = (uint64_t)sentry_value_as_int32(
183183
sentry_value_get_by_key(value, "errors"));
184184
rv->started_us = sentry__iso8601_to_usec(
185-
sentry_value_as_string(sentry_value_get_by_key(value, "started")), -1);
185+
sentry_value_as_string(sentry_value_get_by_key(value, "started")), 0);
186186

187187
double duration
188188
= sentry_value_as_double(sentry_value_get_by_key(value, "duration"));

src/sentry_utils.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ sentry__usec_time_to_iso8601(uint64_t time)
481481
uint64_t
482482
sentry__iso8601_to_usec(const char *iso, size_t iso_len)
483483
{
484-
size_t len = iso_len == (size_t)-1 ? sentry__guarded_strlen(iso) : iso_len;
484+
size_t len = iso_len ? iso_len : sentry__guarded_strlen(iso);
485485
if (len != 20 && len != 27) {
486486
return 0;
487487
}

tests/unit/test_utils.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ SENTRY_TEST(iso_time)
2121
uint64_t usec;
2222
char *str;
2323

24-
usec = sentry__iso8601_to_usec("1970-01-01T00:00:10Z", -1);
24+
usec = sentry__iso8601_to_usec("1970-01-01T00:00:10Z", 0);
2525
TEST_CHECK_INT_EQUAL(usec, 10 * 1000000);
26-
usec = sentry__iso8601_to_usec("2020-04-27T11:02:36.050505Z", -1);
26+
usec = sentry__iso8601_to_usec("2020-04-27T11:02:36.050505Z", 0);
2727
TEST_CHECK_INT_EQUAL(usec, 1587985356050505);
2828
str = sentry__usec_time_to_iso8601(usec);
2929
TEST_ASSERT(!!str);
@@ -33,7 +33,7 @@ SENTRY_TEST(iso_time)
3333
usec = sentry__usec_time();
3434
str = sentry__usec_time_to_iso8601(usec);
3535
TEST_ASSERT(!!str);
36-
uint64_t roundtrip = sentry__iso8601_to_usec(str, -1);
36+
uint64_t roundtrip = sentry__iso8601_to_usec(str, 0);
3737
sentry_free(str);
3838
TEST_CHECK_INT_EQUAL(roundtrip, usec);
3939
}

0 commit comments

Comments
 (0)