commit 509a191474f9c872166d9345d0fd5c6b16cb36d8
parent 3eea668052db201fe3d0453324a6b909e3568d38
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date: Thu, 29 Dec 2016 14:34:30 +0100
make more use of strnlen()
includes adding the so far superfluous prototype for the replacemnt to
common.h.
Diffstat:
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/common.h b/src/common.h
@@ -119,6 +119,9 @@ void free_string_list( string_list_t *list );
#ifndef HAVE_MEMRCHR
void *memrchr( const void *s, int c, size_t n );
#endif
+#ifndef HAVE_STRNLEN
+size_t strnlen( const char *str, size_t maxlen );
+#endif
int starts_with( const char *str, int strl, const char *cmp, int cmpl );
int starts_with_upper( const char *str, int strl, const char *cmp, int cmpl );
diff --git a/src/drv_imap.c b/src/drv_imap.c
@@ -403,7 +403,7 @@ submit_imap_cmd( imap_store_t *ctx, struct imap_cmd *cmd )
static char *
imap_vprintf( const char *fmt, va_list ap )
{
- const char *s, *es;
+ const char *s;
char *d, *ed;
int maxlen;
char c;
@@ -454,8 +454,7 @@ imap_vprintf( const char *fmt, va_list ap )
*d++ = (char)va_arg( ap , int );
} else if (c == 's') {
s = va_arg( ap, const char * );
- es = memchr( s, 0, maxlen );
- l = es ? es - s : maxlen;
+ l = strnlen( s, maxlen );
if (d + l > ed)
oob();
memcpy( d, s, l );