- /* path */
- po = i+1;
- for (i = po; buf[i] != ' '; i++)
- if (i >= size-5)
- {
- o->error = OHTTP;
- return 0;
- }
- hr->path = odr_strdupn(o, buf + po, i - po);
- /* HTTP version */
- i++;
- if (i > size-5 || memcmp(buf+i, "HTTP/", 5))
+ po = ++i;
+ while (i < size && !strchr("\r\n", buf[i]))
+ {
+ if (buf[i] == ' ')
+ lspace = i;
+ i++;
+ }
+ if (!lspace || i >= size || lspace >= size - 5 ||
+ memcmp(buf + lspace + 1, "HTTP/", 5))