projects
/
awesomized
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
tests: run memcached verbosely, catch output and show it on failure
[awesomized/libmemcached]
/
libmemcached
/
parse.cc
diff --git
a/libmemcached/parse.cc
b/libmemcached/parse.cc
index 3284a4f643f48a92cb7a8eca2399eb362ba31b92..7665b731b3767f7c548f8e3ffbb3a0615b00ca8d 100644
(file)
--- a/
libmemcached/parse.cc
+++ b/
libmemcached/parse.cc
@@
-87,7
+87,13
@@
memcached_server_list_st memcached_servers_parse(const char *server_strings)
ptr++;
ptr++;
+ errno= 0;
port= (in_port_t) strtoul(ptr, (char **)NULL, 10);
port= (in_port_t) strtoul(ptr, (char **)NULL, 10);
+ if (errno != 0)
+ {
+ memcached_server_free(servers);
+ return NULL;
+ }
ptr2= index(ptr, ' ');
if (! ptr2)
ptr2= index(ptr, ' ');
if (! ptr2)
@@
-96,14
+102,22
@@
memcached_server_list_st memcached_servers_parse(const char *server_strings)
if (ptr2)
{
ptr2++;
if (ptr2)
{
ptr2++;
- weight = (uint32_t) strtoul(ptr2, (char **)NULL, 10);
+ errno= 0;
+ weight= uint32_t(strtoul(ptr2, (char **)NULL, 10));
+ if (errno != 0)
+ {
+ memcached_server_free(servers);
+ return NULL;
+ }
}
}
servers= memcached_server_list_append_with_weight(servers, buffer, port, weight, &rc);
if (isspace(*begin_ptr))
}
}
servers= memcached_server_list_append_with_weight(servers, buffer, port, weight, &rc);
if (isspace(*begin_ptr))
+ {
begin_ptr++;
begin_ptr++;
+ }
}
return servers;
}
return servers;