]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
gnutls-cli: Handle reading binary data from server.
authorSimon Josefsson <simon@josefsson.org>
Wed, 27 Jan 2010 14:56:51 +0000 (15:56 +0100)
committerSimon Josefsson <simon@josefsson.org>
Wed, 27 Jan 2010 14:56:51 +0000 (15:56 +0100)
Reported by and tiny patch from Vitaly Mayatskikh
<v.mayatskih@gmail.com> in
<http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/4096>.

NEWS
THANKS
src/cli.c

diff --git a/NEWS b/NEWS
index ecbed1c4bac073bcaa9b9ee7413c03a9fc2b5ddb..3b2443778831d24db870e50b783edad42113b0e8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -35,6 +35,11 @@ now different than previous gnutls releases.
 
 ** certtool: New option --no-crq-extensions to avoid extensions in CSRs.
 
+** gnutls-cli: Handle reading binary data from server.
+Reported by and tiny patch from Vitaly Mayatskikh
+<v.mayatskih@gmail.com> in
+<http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/4096>.
+
 ** API and ABI modifications:
 gnutls_cipher_decrypt: Added
 gnutls_cipher_deinit: Added
diff --git a/THANKS b/THANKS
index a4a72f8273fb13ca6f1dc9465675afd969bb74b4..383a91cd76eac9b13471c79396d82e8ac5ab1147 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -1,5 +1,5 @@
 GNU TLS THANKS -- Acknowledgements.
-Copyright (C) 2005, 2006, 2007, 2008, 2009  Free Software Foundation
+Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation
 Copyright (C) 2000, 2001, 2002, 2003, 2004 Nikos Mavrogiannopoulos
 See the end for copying conditions.
 
@@ -104,6 +104,7 @@ Fabian Keil                     <fk@fabiankeil.de>
 Jason Pettiss                   <jpettiss@yahoo.com>
 Ilari Liusvaara                 <ilari.liusvaara@elisanet.fi>
 Steve Dispensa                  <dispensa@phonefactor.com>
+Vitaly Mayatskikh               <v.mayatskih@gmail.com>
 
 ----------------------------------------------------------------------
 Copying and distribution of this file, with or without modification,
index ff34ecec75e7604e2075386395bae256243104bf..d167f5771f69982bd3f55999df675fb8f653ae7d 100644 (file)
--- a/src/cli.c
+++ b/src/cli.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation
+ * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
  * Copyright (C) 2000,2001,2002,2003 Nikos Mavrogiannopoulos
  *
  * This file is part of GNUTLS.
@@ -606,6 +606,7 @@ main (int argc, char **argv)
   struct timeval tv;
   int user_term = 0, retval = 0;
   socket_st hd;
+  ssize_t bytes;
 
   set_program_name (argv[0]);
 
@@ -817,7 +818,7 @@ after_handshake:
 
       if (FD_ISSET (fileno (stdin), &rset))
        {
-         if (fgets (buffer, MAX_BUF, stdin) == NULL)
+         if ((bytes = read (fileno(stdin), buffer, MAX_BUF - 1)) < 0)
            {
              if (hd.secure == 0)
                {
@@ -847,10 +848,13 @@ after_handshake:
            {
              char *b = strchr (buffer, '\n');
              if (b != NULL)
-               strcpy (b, "\r\n");
+               {
+                 strcpy (b, "\r\n");
+                 bytes++;
+               }
            }
 
-         ret = socket_send (&hd, buffer, strlen (buffer));
+         ret = socket_send (&hd, buffer, bytes);
 
          if (ret > 0)
            {