From 2606f9bb3d46fa8e4534e2afa8b29f1630c5f530 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Mon, 29 Aug 2011 18:00:09 +1000 Subject: [PATCH] Win32: add workaround for lack of vasprintf() and use vsnprintf() on windows on a fixed size buffer --- lib/init.c | 14 ++++++++------ lib/libnfs.c | 15 ++++++++++----- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/lib/init.c b/lib/init.c index 222bee9..d9f788f 100644 --- a/lib/init.c +++ b/lib/init.c @@ -1,10 +1,7 @@ /* Copyright (C) 2010 by Ronnie Sahlberg - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -99,8 +96,13 @@ void rpc_set_error(struct rpc_context *rpc, char *error_string, ...) free(rpc->error_string); } va_start(ap, error_string); - // vasprintf(&str, error_string, ap); - // rpc->error_string = str; +#if defined (WIN32) + str = malloc(1024); + vsnprintf(str, 1024, error_string, ap); +#else + vasprintf(&str, error_string, ap); +#endif + rpc->error_string = str; va_end(ap); } diff --git a/lib/libnfs.c b/lib/libnfs.c index 8a0adba..df273fb 100644 --- a/lib/libnfs.c +++ b/lib/libnfs.c @@ -2899,11 +2899,16 @@ void nfs_set_error(struct nfs_context *nfs, char *error_string, ...) char *str = NULL; va_start(ap, error_string); - // vasprintf(&str, error_string, ap); - // if (nfs->rpc->error_string != NULL) { - // free(nfs->rpc->error_string); - //} - //nfs->rpc->error_string = str; +#if defined (WIN32) + str = malloc(1024); + vsnprintf(str, 1024, error_string, ap); +#else + vasprintf(&str, error_string, ap); +#endif + if (nfs->rpc->error_string != NULL) { + free(nfs->rpc->error_string); + } + fs->rpc->error_string = str; va_end(ap); } -- 2.34.1