X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=clients%2Fms_conn.c;h=ae3145f5ae170c412b998e22d6f6b7d23ee7781e;hb=575deb8a1812d391be36a97e3cdc0f75ff86ad6a;hp=82016e1fef60c3c557dfd45e4cb0827ebac10cc4;hpb=0d155680bc6ee846eec8af538d53896f97f2e58a;p=m6w6%2Flibmemcached diff --git a/clients/ms_conn.c b/clients/ms_conn.c index 82016e1f..ae3145f5 100644 --- a/clients/ms_conn.c +++ b/clients/ms_conn.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #if TIME_WITH_SYS_TIME # include @@ -2886,13 +2887,14 @@ static int ms_build_ascii_write_buf_set(ms_conn_t *c, ms_task_item_t *item) int write_len; char *buffer= c->wbuf; - write_len= sprintf(buffer, - " %u %d %d\r\n", - 0, - item->exp_time, - item->value_size); + write_len= snprintf(buffer, + c->wsize, + " %u %d %d\r\n", + 0, + item->exp_time, + item->value_size); - if (write_len > c->wsize) + if (write_len > c->wsize || write_len < 0) { /* ought to be always enough. just fail for simplicity */ fprintf(stderr, "output command line too long.\n");