From: Jeremy Allison Date: Wed, 9 Feb 2011 18:28:08 +0000 (-0800) Subject: Don't use asprintf in this library - breaks the build on many systems. Fake with... X-Git-Tag: tevent-0.9.11~812 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=344e4cd2801805faf38b86f7f33b05e204452532;p=thirdparty%2Fsamba.git Don't use asprintf in this library - breaks the build on many systems. Fake with malloc/memcpy. --- diff --git a/source3/libsmb/smb_share_modes.c b/source3/libsmb/smb_share_modes.c index 31745008204..e752f618a40 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);