[Pkg-net-snmp-devel] Bug#344979: Correct patch
Ginter, Benjamin
bginter at trigeo.com
Fri Feb 13 21:25:16 UTC 2009
My apologies, this is the correct patch. The first one issued the va_end() immediately after the first vsnprintf.
--- pristine/net-snmp-5.2.3/snmplib/snmp_logging.c 2006-01-25 08:28:12.000000000 -0800
+++ net-snmp-5.2.3/snmplib/snmp_logging.c 2009-02-13 13:11:29.000000000 -0800
@@ -1135,19 +1135,25 @@
char buffer[LOGLENGTH];
int length;
char *dynamic;
+ va_list aq;
+ va_copy( aq, ap );
length = vsnprintf(buffer, LOGLENGTH, format, ap);
- if (length == 0)
+ if (length == 0) {
+ va_end( aq );
return (0); /* Empty string */
+ }
if (length == -1) {
snmp_log_string(LOG_ERR, "Could not format log-string\n");
+ va_end( aq );
return (-1);
}
if (length < LOGLENGTH) {
snmp_log_string(priority, buffer);
+ va_end(aq);
return (0);
}
@@ -1156,12 +1162,14 @@
snmp_log_string(LOG_ERR,
"Could not allocate memory for log-message\n");
snmp_log_string(priority, buffer);
+ va_end(aq);
return (-2);
}
- vsnprintf(dynamic, length + 1, format, ap);
+ vsnprintf(dynamic, length + 1, format, aq);
snmp_log_string(priority, dynamic);
free(dynamic);
+ va_end(aq);
return 0;
}
More information about the Pkg-net-snmp-devel
mailing list