Mercurial > gftp.yaz
changeset 839:0d9a3d4188c3
2006-10-31 Brian Masney <masneyb@gftp.org>
WARNING: The CVS version of gFTP is currently broken, especially for
international users. This will be fixed in a few days.
* lib/sshv2.c (sshv2_add_string_to_buf) - added length argument to
this function.
author | masneyb |
---|---|
date | Wed, 01 Nov 2006 02:31:06 +0000 |
parents | 57aad6d4b304 |
children | dd83cd01dc30 |
files | ChangeLog lib/sshv2.c |
diffstat | 2 files changed, 22 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Wed Nov 01 02:05:25 2006 +0000 +++ b/ChangeLog Wed Nov 01 02:31:06 2006 +0000 @@ -2,6 +2,9 @@ WARNING: The CVS version of gFTP is currently broken, especially for international users. This will be fixed in a few days. + * lib/sshv2.c (sshv2_add_string_to_buf) - added length argument to + this function. + * lib/gftp.h lib/local.c lib/misc.c lib/protocols.c lib/rfc959.c src/gtk/misc-gtk.c src/text/gftp-text.c - added length argument to gftp_string_from_utf8() and gftp_string_to_utf8() @@ -3663,7 +3666,7 @@ * cvsclean - added this script - * *.[ch] - added $Id: ChangeLog,v 1.488 2006/11/01 02:05:05 masneyb Exp $ tags + * *.[ch] - added $Id: ChangeLog,v 1.489 2006/11/01 02:31:05 masneyb Exp $ tags * debian/* - updated files from Debian maintainer
--- a/lib/sshv2.c Wed Nov 01 02:05:25 2006 +0000 +++ b/lib/sshv2.c Wed Nov 01 02:31:06 2006 +0000 @@ -157,13 +157,13 @@ static void -sshv2_add_string_to_buf (char *buf, const char *str) +sshv2_add_string_to_buf (char *buf, const char *str, size_t len) { guint32 num; num = htonl (strlen (str)); memcpy (buf, &num, 4); - strcpy (buf + 4, str); + memcpy (buf + 4, str, len); } @@ -179,7 +179,7 @@ pathlen = strlen (path); *len += pathlen + 8; ret = sshv2_initialize_string (request, *len); - sshv2_add_string_to_buf (ret + 4, path); + sshv2_add_string_to_buf (ret + 4, path, pathlen); } else { @@ -187,7 +187,7 @@ pathlen = strlen (tempstr); *len += pathlen + 8; ret = sshv2_initialize_string (request, *len); - sshv2_add_string_to_buf (ret + 4, tempstr); + sshv2_add_string_to_buf (ret + 4, tempstr, pathlen); g_free (tempstr); } @@ -959,7 +959,7 @@ { sshv2_message message; char *tempstr, *dir; - size_t len; + size_t msglen, pathlen; int ret; g_return_val_if_fail (request != NULL, GFTP_EFATAL); @@ -970,11 +970,12 @@ else dir = request->directory; - len = strlen (dir) + 8; - tempstr = sshv2_initialize_string (request, len); - sshv2_add_string_to_buf (tempstr + 4, dir); + pathlen = strlen (dir); + msglen = pathlen + 8; + tempstr = sshv2_initialize_string (request, msglen); + sshv2_add_string_to_buf (tempstr + 4, dir, pathlen); - ret = sshv2_send_command (request, SSH_FXP_REALPATH, tempstr, len); + ret = sshv2_send_command (request, SSH_FXP_REALPATH, tempstr, msglen); g_free (tempstr); if (ret < 0) @@ -1189,10 +1190,10 @@ static int sshv2_list_files (gftp_request * request) { + size_t msglen, pathlen; sshv2_params * params; sshv2_message message; char *tempstr; - size_t len; int ret; g_return_val_if_fail (request != NULL, GFTP_EFATAL); @@ -1204,11 +1205,12 @@ request->logging_function (gftp_logging_misc, request, _("Retrieving directory listing...\n")); - len = strlen (request->directory) + 8; - tempstr = sshv2_initialize_string (request, len); - sshv2_add_string_to_buf (tempstr + 4, request->directory); + pathlen = strlen (request->directory); + msglen = pathlen + 8; + tempstr = sshv2_initialize_string (request, msglen); + sshv2_add_string_to_buf (tempstr + 4, request->directory, pathlen); - ret = sshv2_send_command (request, SSH_FXP_OPENDIR, tempstr, len); + ret = sshv2_send_command (request, SSH_FXP_OPENDIR, tempstr, msglen); g_free (tempstr); if (ret < 0) @@ -1624,8 +1626,8 @@ len = oldlen + newlen + 12; tempstr = sshv2_initialize_string (request, len); - sshv2_add_string_to_buf (tempstr + 4, oldstr); - sshv2_add_string_to_buf (tempstr + 8 + oldlen, newstr); + sshv2_add_string_to_buf (tempstr + 4, oldstr, oldlen); + sshv2_add_string_to_buf (tempstr + 8 + oldlen, newstr, newlen); g_free (oldstr); g_free (newstr);