]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
pullup:
authorBrian Wellington <source@isc.org>
Mon, 21 May 2001 21:31:39 +0000 (21:31 +0000)
committerBrian Wellington <source@isc.org>
Mon, 21 May 2001 21:31:39 +0000 (21:31 +0000)
isc_print_vsnprintf() could throw an assertion failure when
given a %lld format, causing a deadlock when logging the assertion if invoked
from the logging system.  Since the %qd format does not have the bug, this only
affects platforms where the native quad format is %lld and that lack a native
vsnprintf().  The only known such platform is SunOS 5.5.1. [RT #1312]

lib/isc/print.c

index 75874f952cbcb07f7989a9ac31b47cd8ac15a500..658b6f16e692811ba45088474ae4ab73b97bf3ca 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: print.c,v 1.16.2.1 2001/01/09 22:49:12 bwelling Exp $ */
+/* $Id: print.c,v 1.16.2.2 2001/05/21 21:31:39 bwelling Exp $ */
 
 #include <config.h>
 
@@ -180,8 +180,10 @@ isc_print_vsnprintf(char *str, size_t size, const char *format, va_list ap) {
                case 'l':
                        l = 1;
                        format++;
-                       if (*format == 'l')
+                       if (*format == 'l') {
                                q = 1;
+                               format++;
+                       }
                        goto doint;
                case 'n':
                case 'i':