X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Frrd_error.c;h=6c49e96ee7a9949bb54e8470be2abb9b65372524;hb=aa840c7ca33bbc6ea5723bd533c1a4cc3f2f24e5;hp=992730ca50f08797c5bea18547cd2a403324df4a;hpb=ba531669d795b10244c358135249016c5898519b;p=pkg-rrdtool.git diff --git a/src/rrd_error.c b/src/rrd_error.c index 992730c..6c49e96 100644 --- a/src/rrd_error.c +++ b/src/rrd_error.c @@ -1,9 +1,9 @@ /***************************************************************************** - * RRDtool 1.3rc6 Copyright by Tobi Oetiker, 1997-2008 + * RRDtool 1.3.1 Copyright by Tobi Oetiker, 1997-2008 ***************************************************************************** * rrd_error.c Common Header File ***************************************************************************** - * $Id: rrd_error.c 1380 2008-05-26 08:56:58Z oetiker $ + * $Id: rrd_error.c 1447 2008-07-23 13:02:26Z oetiker $ * $Log$ * Revision 1.4 2003/02/22 21:57:03 oetiker * a patch to avoid a memory leak and a Makefile.am patch to @@ -46,7 +46,7 @@ void rrd_set_error( rrd_clear_error(); va_start(argp, fmt); #ifdef HAVE_VSNPRINTF - vsnprintf(CTX->rrd_error, CTX->len, fmt, argp); + vsnprintf(CTX->rrd_error, sizeof(CTX->rrd_error), fmt, argp); #else vsprintf(CTX->rrd_error, fmt, argp); #endif @@ -78,7 +78,7 @@ char *rrd_get_error( context. Using these functions would require to change each and every function containing any of the non _r versions... */ void rrd_set_error_r( - struct rrd_context *rrd_ctx, + rrd_context_t * rrd_ctx, char *fmt, ...) { @@ -87,75 +87,60 @@ void rrd_set_error_r( rrd_clear_error_r(rrd_ctx); va_start(argp, fmt); #ifdef HAVE_VSNPRINTF - vsnprintf((char *) rrd_ctx->rrd_error, rrd_ctx->len, fmt, argp); - rrd_ctx->rrd_error[rrd_ctx->len] = '\0'; + vsnprintf(rrd_ctx->rrd_error, sizeof(rrd_ctx->rrd_error), fmt, argp); + rrd_ctx->rrd_error[sizeof(rrd_ctx->rrd_error) - 1] = '\0'; #else - vsprintf((char *) rrd_ctx->rrd_error, fmt, argp); + vsprintf(rrd_ctx->rrd_error, fmt, argp); #endif va_end(argp); } int rrd_test_error_r( - struct rrd_context *rrd_ctx) + rrd_context_t * rrd_ctx) { return rrd_ctx->rrd_error[0] != '\0'; } void rrd_clear_error_r( - struct rrd_context *rrd_ctx) + rrd_context_t * rrd_ctx) { rrd_ctx->rrd_error[0] = '\0'; } char *rrd_get_error_r( - struct rrd_context *rrd_ctx) + rrd_context_t * rrd_ctx) { - return (char *) rrd_ctx->rrd_error; + return rrd_ctx->rrd_error; } #endif /* PS: Should we move this to some other file? It is not really error related. */ -struct rrd_context *rrd_new_context( +rrd_context_t *rrd_new_context( void) { - struct rrd_context *rrd_ctx = - (struct rrd_context *) malloc(sizeof(struct rrd_context)); + rrd_context_t *rrd_ctx = (rrd_context_t *) malloc(sizeof(rrd_context_t)); - if (rrd_ctx) { - rrd_ctx->rrd_error = malloc(MAXLEN + 10); - rrd_ctx->lib_errstr = malloc(ERRBUFLEN + 10); - if (rrd_ctx->rrd_error && rrd_ctx->lib_errstr) { - *rrd_ctx->rrd_error = 0; - *rrd_ctx->lib_errstr = 0; - rrd_ctx->len = MAXLEN; - rrd_ctx->errlen = ERRBUFLEN; - return rrd_ctx; - } - if (rrd_ctx->rrd_error) - free(rrd_ctx->rrd_error); - if (rrd_ctx->lib_errstr) - free(rrd_ctx->lib_errstr); - free(rrd_ctx); + if (!rrd_ctx) { + return NULL; } - return NULL; + + rrd_ctx->rrd_error[0] = '\0'; + rrd_ctx->lib_errstr[0] = '\0'; + return rrd_ctx; } void rrd_free_context( - struct rrd_context *rrd_ctx) + rrd_context_t * rrd_ctx) { if (rrd_ctx) { - if (rrd_ctx->rrd_error) - free(rrd_ctx->rrd_error); - if (rrd_ctx->lib_errstr) - free(rrd_ctx->lib_errstr); free(rrd_ctx); } } #if 0 void rrd_globalize_error( - struct rrd_context *rrd_ctx) + rrd_context_t * rrd_ctx) { if (rrd_ctx) { rrd_set_error(rrd_ctx->rrd_error);