diff --git a/src/libgit2/transports/smart_pkt.c b/src/libgit2/transports/smart_pkt.c index 29ccb83ac72..1d0070e46b6 100644 --- a/src/libgit2/transports/smart_pkt.c +++ b/src/libgit2/transports/smart_pkt.c @@ -238,13 +238,13 @@ static int set_data( if (strncmp(caps, "object-format=", CONST_STRLEN("object-format=")) == 0) format_str = caps + CONST_STRLEN("object-format="); - else if ((format_str = strstr(caps, " object-format=")) != NULL) + else if ((format_str = git__memmem(caps, len - (caps - line), " object-format=", CONST_STRLEN(" object-format="))) != NULL) format_str += CONST_STRLEN(" object-format="); } if (format_str) { - if ((eos = strchr(format_str, ' ')) == NULL) - eos = strchr(format_str, '\0'); + if ((eos = memchr(format_str, ' ', len - (format_str - line))) == NULL) + eos = memchr(format_str, '\0', len - (format_str - line)); GIT_ASSERT(eos);