vendor/libgit2/deps/http-parser/http_parser.c in rugged-0.28.4 vs vendor/libgit2/deps/http-parser/http_parser.c in rugged-0.28.4.1

- old
+ new

@@ -1990,13 +1990,10 @@ enum http_host_state s; const char *p; size_t buflen = u->field_data[UF_HOST].off + u->field_data[UF_HOST].len; - if (buflen > UINT16_MAX) - return 1; - u->field_data[UF_HOST].len = 0; s = found_at ? s_http_userinfo_start : s_http_host_start; for (p = buf + u->field_data[UF_HOST].off; p < buf + buflen; p++) { @@ -2007,34 +2004,34 @@ } switch(new_s) { case s_http_host: if (s != s_http_host) { - u->field_data[UF_HOST].off = (uint16_t)(p - buf); + u->field_data[UF_HOST].off = p - buf; } u->field_data[UF_HOST].len++; break; case s_http_host_v6: if (s != s_http_host_v6) { - u->field_data[UF_HOST].off = (uint16_t)(p - buf); + u->field_data[UF_HOST].off = p - buf; } u->field_data[UF_HOST].len++; break; case s_http_host_port: if (s != s_http_host_port) { - u->field_data[UF_PORT].off = (uint16_t)(p - buf); + u->field_data[UF_PORT].off = p - buf; u->field_data[UF_PORT].len = 0; u->field_set |= (1 << UF_PORT); } u->field_data[UF_PORT].len++; break; case s_http_userinfo: if (s != s_http_userinfo) { - u->field_data[UF_USERINFO].off = (uint16_t)(p - buf); + u->field_data[UF_USERINFO].off = p - buf ; u->field_data[UF_USERINFO].len = 0; u->field_set |= (1 << UF_USERINFO); } u->field_data[UF_USERINFO].len++; break; @@ -2048,10 +2045,11 @@ /* Make sure we don't end somewhere unexpected */ switch (s) { case s_http_host_start: case s_http_host_v6_start: case s_http_host_v6: + case s_http_host_port_start: case s_http_userinfo: case s_http_userinfo_start: return 1; default: break; @@ -2067,13 +2065,10 @@ enum state s; const char *p; enum http_parser_url_fields uf, old_uf; int found_at = 0; - if (buflen > UINT16_MAX) - return 1; - u->port = u->field_set = 0; s = is_connect ? s_req_server_start : s_req_spaces_before_url; uf = old_uf = UF_MAX; for (p = buf; p < buf + buflen; p++) { @@ -2125,10 +2120,10 @@ if (uf == old_uf) { u->field_data[uf].len++; continue; } - u->field_data[uf].off = (uint16_t)(p - buf); + u->field_data[uf].off = p - buf; u->field_data[uf].len = 1; u->field_set |= (1 << uf); old_uf = uf; }