vendor/libgit2/deps/http-parser/http_parser.c in rugged-0.27.10 vs vendor/libgit2/deps/http-parser/http_parser.c in rugged-0.27.10.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;
}