From df023b8657cab232df88d3656aa5d87676bb7254 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 3 May 2011 16:42:17 -0700 Subject: Tidy up some missing checks for NULL in strlcpy. --- lib/util/string_wrappers.h | 2 +- libcli/auth/smbencrypt.c | 2 +- source3/client/clitar.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/util/string_wrappers.h b/lib/util/string_wrappers.h index 4a5f51d96b..80d0b9932a 100644 --- a/lib/util/string_wrappers.h +++ b/lib/util/string_wrappers.h @@ -42,7 +42,7 @@ size_t __unsafe_string_function_usage_here_size_t__(void); #endif /* HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS */ #define strlcpy_base(dest, src, base, size) \ - strlcpy(dest, src, size-PTR_DIFF(dest,base)) + strlcpy((dest), (src) ? (src) : "", (size)-PTR_DIFF((dest),(base))) /* String copy functions - macro hell below adds 'type checking' (limited, but the best we can do in C) */ diff --git a/libcli/auth/smbencrypt.c b/libcli/auth/smbencrypt.c index c59bc515ba..0cd836302b 100644 --- a/libcli/auth/smbencrypt.c +++ b/libcli/auth/smbencrypt.c @@ -134,7 +134,7 @@ bool E_deshash(const char *passwd, uint8_t p16[16]) tmpbuf = strupper_talloc(mem_ctx, passwd); if (tmpbuf == NULL) { /* Too many callers don't check this result, we need to fill in the buffer with something */ - strlcpy((char *)dospwd, passwd, sizeof(dospwd)); + strlcpy((char *)dospwd, passwd ? passwd : "", sizeof(dospwd)); E_P16(dospwd, p16); return false; } diff --git a/source3/client/clitar.c b/source3/client/clitar.c index 61af481e85..80968a64d7 100644 --- a/source3/client/clitar.c +++ b/source3/client/clitar.c @@ -180,7 +180,7 @@ static void writetarheader(int f, const char *aname, uint64_t size, time_t mtime /* write out a "standard" tar format header */ hb.dbuf.name[NAMSIZ-1]='\0'; - strlcpy(hb.dbuf.mode, amode, sizeof(hb.dbuf.mode)); + strlcpy(hb.dbuf.mode, amode ? amode : "", sizeof(hb.dbuf.mode)); oct_it((uint64_t)0, 8, hb.dbuf.uid); oct_it((uint64_t)0, 8, hb.dbuf.gid); oct_it((uint64_t) size, 13, hb.dbuf.size); -- cgit