]> sjero.net Git - wget/commitdiff
gnutls: do not access unitialized variable.
authorGiuseppe Scrivano <gscrivano@gnu.org>
Sun, 1 Apr 2012 14:26:44 +0000 (16:26 +0200)
committerGiuseppe Scrivano <gscrivano@gnu.org>
Sun, 1 Apr 2012 14:26:44 +0000 (16:26 +0200)
src/ChangeLog
src/gnutls.c

index 4d2dd711d1309a1fae8cb72fc66c584190425108..d58b15207d8c6a9c19c2bacae067c98a957bb448 100644 (file)
@@ -1,3 +1,9 @@
+2012-04-01  Giuseppe Scrivano  <gscrivano@gnu.org>
+
+       * gnutls.c (wgnutls_read_timeout): Do not use timer if it is not
+       allocated.
+       Reported by: Xu Zhongxing <xu_zhong_xing@163.com>
+
 2012-03-30  Tim Ruehsen  <tim.ruehsen@gmx.de> (tiny change)
 
        * warc.c: make warc_uuid_str() implementation depend on HAVE_LIBUUID.
index 2a1d22b9ed3ad91a942d5a0261a961e776b6371d..2db5a90c5806d65b6d45eaf9b1dc45e66ed0416b 100644 (file)
@@ -1,5 +1,5 @@
 /* SSL support via GnuTLS library.
-   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software
    Foundation, Inc.
 
 This file is part of GNU Wget.
@@ -160,9 +160,13 @@ wgnutls_read_timeout (int fd, char *buf, int bufsize, void *arg, double timeout)
 
   do
     {
-      double next_timeout = timeout - ptimer_measure (timer);
-      if (timeout && next_timeout < 0)
-        break;
+      double next_timeout;
+      if (timeout > 0.0)
+       {
+         next_timeout = timeout - ptimer_measure (timer);
+         if (next_timeout < 0.0)
+           break;
+       }
 
       ret = GNUTLS_E_AGAIN;
       if (timeout == 0 || gnutls_record_check_pending (ctx->session)