From: Simon Josefsson Date: Wed, 27 Jan 2010 14:56:51 +0000 (+0100) Subject: gnutls-cli: Handle reading binary data from server. X-Git-Tag: gnutls_2_9_10~134 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a0e69d2a86fc8e670cb9e7fa4afe21fd809bd2d2;p=thirdparty%2Fgnutls.git gnutls-cli: Handle reading binary data from server. Reported by and tiny patch from Vitaly Mayatskikh in . --- diff --git a/NEWS b/NEWS index ecbed1c4ba..3b24437788 100644 --- 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 + in +. + ** API and ABI modifications: gnutls_cipher_decrypt: Added gnutls_cipher_deinit: Added diff --git a/THANKS b/THANKS index a4a72f8273..383a91cd76 100644 --- 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 Jason Pettiss Ilari Liusvaara Steve Dispensa +Vitaly Mayatskikh ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, diff --git a/src/cli.c b/src/cli.c index ff34ecec75..d167f5771f 100644 --- 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) {