projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Added tag 0.2 for changeset 72b98d8bc30e
[m6w6/libmemcached]
/
lib
/
memcached_auto.c
diff --git
a/lib/memcached_auto.c
b/lib/memcached_auto.c
index 7122dc90096e6db4659dfc2120d0e32660e6085a..acb554b149bd4dd220ce0eaf3899681503152f96 100644
(file)
--- a/
lib/memcached_auto.c
+++ b/
lib/memcached_auto.c
@@
-6,7
+6,7
@@
static memcached_return memcached_auto(memcached_st *ptr,
unsigned int offset,
unsigned int *value)
{
unsigned int offset,
unsigned int *value)
{
- size_t send_length;
+ size_t send_length
, sent_length
;
memcached_return rc;
char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
unsigned int server_key;
memcached_return rc;
char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
unsigned int server_key;
@@
-22,8
+22,11
@@
static memcached_return memcached_auto(memcached_st *ptr,
"%s %.*s %u\r\n", verb,
(int)key_length, key,
offset);
"%s %.*s %u\r\n", verb,
(int)key_length, key,
offset);
+ if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
+ return MEMCACHED_WRITE_FAILURE;
+ sent_length= write(ptr->hosts[server_key].fd, buffer, send_length);
- if (
(write(ptr->hosts[server_key].fd, buffer, send_length) == -1)
)
+ if (
sent_length == -1 || sent_length != send_length
)
return MEMCACHED_WRITE_FAILURE;
memset(buffer, 0, MEMCACHED_DEFAULT_COMMAND_SIZE);
return MEMCACHED_WRITE_FAILURE;
memset(buffer, 0, MEMCACHED_DEFAULT_COMMAND_SIZE);