[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