]> xenbits.xensource.com Git - libvirt.git/commitdiff
Don't access line[-1] for a zero-length "line" from fgets.
authorJim Meyering <meyering@redhat.com>
Mon, 21 Jan 2008 14:09:51 +0000 (14:09 +0000)
committerJim Meyering <meyering@redhat.com>
Mon, 21 Jan 2008 14:09:51 +0000 (14:09 +0000)
A NUL byte at beginning of input, or just after a newline
would provoke an invalid buf[-1] access (possible segfault).
* src/libvirt.c (virConnectAuthCallbackDefault):

ChangeLog
src/libvirt.c

index c97be1cbca2aa7b3b4a4882df988b1b26d9a1f27..4d7d74bdc8e6cd6e431de971176c2af625d77922 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,13 @@
+Mon Jan 21 15:03:04 CET 2008  Jim Meyering  <meyering@redhat.com>
+
+       Don't access line[-1] for a zero-length "line" from fgets.
+       A NUL byte at beginning of input, or just after a newline
+       would provoke an invalid buf[-1] access (possible segfault).
+       * src/libvirt.c (virConnectAuthCallbackDefault):
+
 Mon Jan 21 09:25:12 CET 2008 Daniel Veillard <veillard@redhat.com>
 
-       * src/xml-internal.c: apply patch from Hiroyuki Kaguchi to 
+       * src/xml-internal.c: apply patch from Hiroyuki Kaguchi to
          preserve the vif list order.
 
 Mon Jan 21 09:06:28 CET 2008 Daniel Veillard <veillard@redhat.com>
@@ -27,7 +34,24 @@ Sat Jan 19 13:32:22 EST 2008 Daniel P. Berrange <berrange@redhat.com>
        src/xend_internal.c: Use generic VIR_DEBUG macro for logging.
        Enable debug when env var LIBVIRT_DEBUG=1
 
-Tue Jan 15 16:25:57 CET  Jim Meyering  <meyering@redhat.com>
+Thu Jan 17 23:12:42 CET 2008  Jim Meyering  <meyering@redhat.com>
+
+       Handle PyTuple_New's malloc failure.
+       * python/libvir.c (libvirt_virDomainBlockStats): Handle a NULL
+       return from PyTuple_New.
+       (libvirt_virDomainInterfaceStats, libvirt_virGetLastError): Likewise.
+       (libvirt_virConnGetLastError): Likewise.
+
+       Factor out some duplication.
+       * python/libvir.c (VIR_PY_NONE): New macro, to encapsulate
+       a common two-statement sequence.
+       Replace all such 2-stmt sequences.
+
+       Avoid format string warnings.
+       * src/virsh.c: Add "%s" where needed.
+       * src/proxy_internal.c: Likewise.
+
+Tue Jan 15 16:25:57 CET 2008  Jim Meyering  <meyering@redhat.com>
 
        * docs/examples/examples.xml: Regenerate, now that *.c file names
        are sorted.
index 3a5cb7ba509de75958af75836362443f3be965c5..d8730a7b22758cb2845f703f56017e7cf98b388b 100644 (file)
@@ -70,6 +70,7 @@ static int virConnectAuthCallbackDefault(virConnectCredentialPtr cred,
     for (i = 0 ; i < ncred ; i++) {
         char buf[1024];
         char *bufptr = buf;
+        size_t len;
 
         if (printf("%s:", cred[i].prompt) < 0)
             return -1;
@@ -88,8 +89,9 @@ static int virConnectAuthCallbackDefault(virConnectCredentialPtr cred,
                 }
                 return -1;
             }
-            if (buf[strlen(buf)-1] == '\n')
-                buf[strlen(buf)-1] = '\0';
+            len = strlen(buf);
+            if (len != 0 && buf[len-1] == '\n')
+                buf[len-1] = '\0';
             break;
 
         case VIR_CRED_PASSPHRASE: