summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2013-12-20 13:25:43 -0800
committerdormando <dormando@rydia.net>2013-12-20 13:25:43 -0800
commitfbe823d9a61b5149cd6e3b5e17bd28dd3b8dd760 (patch)
treeb25715b43a8ee34243c3e3c7b232e9db41c7ea47
parent0f605245cf3f37c2efe4e225237ad17256ea2a34 (diff)
downloadmemcached-fbe823d9a61b5149cd6e3b5e17bd28dd3b8dd760.tar.gz
fix potential unbounded key prints
item key isn't necessarily null terminated. user submitted a patch for one, this clears two more.
-rw-r--r--items.c8
-rw-r--r--memcached.c10
2 files changed, 14 insertions, 4 deletions
diff --git a/items.c b/items.c
index d70400c..65b1a24 100644
--- a/items.c
+++ b/items.c
@@ -537,12 +537,16 @@ item *do_item_get(const char *key, const size_t nkey, const uint32_t hv) {
int was_found = 0;
if (settings.verbose > 2) {
+ int ii;
if (it == NULL) {
- fprintf(stderr, "> NOT FOUND %s", key);
+ fprintf(stderr, "> NOT FOUND ");
} else {
- fprintf(stderr, "> FOUND KEY %s", ITEM_key(it));
+ fprintf(stderr, "> FOUND KEY ");
was_found++;
}
+ for (ii = 0; ii < nkey; ++ii) {
+ fprintf(stderr, "%c", key[ii]);
+ }
}
if (it != NULL) {
diff --git a/memcached.c b/memcached.c
index f7a140c..6486ff2 100644
--- a/memcached.c
+++ b/memcached.c
@@ -2856,8 +2856,14 @@ static inline void process_get_command(conn *c, token_t *tokens, size_t ntokens,
}
- if (settings.verbose > 1)
- fprintf(stderr, ">%d sending key %s\n", c->sfd, ITEM_key(it));
+ if (settings.verbose > 1) {
+ int ii;
+ fprintf(stderr, ">%d sending key ", c->sfd);
+ for (ii = 0; ii < it->nkey; ++ii) {
+ fprintf(stderr, "%c", key[ii]);
+ }
+ fprintf(stderr, "\n");
+ }
/* item_get() has incremented it->refcount for us */
pthread_mutex_lock(&c->thread->stats.mutex);