mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
xen: fix parsing xend http response
Commit df36af58 broke parsing of http response from xend. The prior use of atoi() would happily parse e.g. a string containing "200 OK\r\n", whereas virStrToLong_i() will fail when called with a NULL end_ptr. Change the calls to virStrToLong_i() to provide a non-NULL end_ptr.
This commit is contained in:
parent
7e4dcf3a47
commit
37564b471d
@ -282,6 +282,7 @@ xend_req(int fd, char **content)
|
||||
size_t buffer_size = 4096;
|
||||
int content_length = 0;
|
||||
int retcode = 0;
|
||||
char *end_ptr;
|
||||
|
||||
if (VIR_ALLOC_N(buffer, buffer_size) < 0)
|
||||
return -1;
|
||||
@ -291,13 +292,13 @@ xend_req(int fd, char **content)
|
||||
break;
|
||||
|
||||
if (istartswith(buffer, "Content-Length: ")) {
|
||||
if (virStrToLong_i(buffer + 16, NULL, 10, &content_length) < 0) {
|
||||
if (virStrToLong_i(buffer + 16, &end_ptr, 10, &content_length) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("failed to parse Xend response content length"));
|
||||
return -1;
|
||||
}
|
||||
} else if (istartswith(buffer, "HTTP/1.1 ")) {
|
||||
if (virStrToLong_i(buffer + 9, NULL, 10, &retcode) < 0) {
|
||||
if (virStrToLong_i(buffer + 9, &end_ptr, 10, &retcode) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("failed to parse Xend response return code"));
|
||||
return -1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user