From 344e4cd2801805faf38b86f7f33b05e204452532 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 9 Feb 2011 10:28:08 -0800 Subject: Don't use asprintf in this library - breaks the build on many systems. Fake with malloc/memcpy. --- source3/libsmb/smb_share_modes.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/source3/libsmb/smb_share_modes.c b/source3/libsmb/smb_share_modes.c index 3174500820..e752f618a4 100644 --- a/source3/libsmb/smb_share_modes.c +++ b/source3/libsmb/smb_share_modes.c @@ -267,15 +267,20 @@ static uint32_t smb_name_hash(const char *sharepath, const char *filename, int * { TDB_DATA key; char *fullpath = NULL; - int ret; + size_t sharepath_size = strlen(sharepath); + size_t filename_size = strlen(filename); uint32_t name_hash; *err = 0; - ret = asprintf(&fullpath, "%s/%s", sharepath, filename); - if (ret == -1) { + fullpath = malloc(sharepath_size + filename_size + 2); + if (fullpath == NULL) { *err = 1; return 0; } + memcpy(fullpath, sharepath, sharepath_size); + fullpath[sharepath_size] = '/'; + memcpy(&fullpath[sharepath_size + 1], filename, filename_size + 1); + key.dptr = (uint8_t *)fullpath; key.dsize = strlen(fullpath) + 1; name_hash = tdb_jenkins_hash(&key); -- cgit