From ca250bf14979d359a82d5baf11ae9587d5605594 Mon Sep 17 00:00:00 2001 From: B Stack Date: Tue, 17 Sep 2019 08:06:14 -0400 Subject: add upstream 10.16 --- Bugs.txt | 175 +++++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 114 insertions(+), 61 deletions(-) (limited to 'Bugs.txt') diff --git a/Bugs.txt b/Bugs.txt index 1cec865e..551614a0 100755 --- a/Bugs.txt +++ b/Bugs.txt @@ -2,22 +2,72 @@ When manually compiling FreeFileSync, you should also fix the following bugs in ---------------- -| libssh2 Bugs | +| libcurl Bugs | ---------------- __________________________________________________________________________________________________________ -Amazons SFTP server returns legitimate package sizes of ~100kb! -https://freefilesync.org/forum/viewtopic.php?t=5999 +/lib/setopt.c +https://github.com/curl/curl/pull/4321 -/src/sftp.c: +- if ((arg < CURLFTPMETHOD_DEFAULT) || (arg > CURLFTPMETHOD_SINGLECWD)) ++ if ((arg < CURLFTPMETHOD_DEFAULT) || (arg >= CURLFTPMETHOD_LAST)) -- #define LIBSSH2_SFTP_PACKET_MAXLEN 80000 -+ #define LIBSSH2_SFTP_PACKET_MAXLEN 160000 __________________________________________________________________________________________________________ +https://github.com/curl/curl/pull/4331 +/include/curl/curl.h + + CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */ ++ CURLFTPMETHOD_FULLPATH, //AKA "CURLFTPMETHOD_NOCWD_BUT_THIS_TIME_FOR_REAL" + + +/lib/ftp.h + + FTPFILE_SINGLECWD = 3 /* make one CWD, then SIZE / RETR / STOR on the + file */ ++ FTPFILE_FULLPATH = 4 //AKA "FTPFILE_NOCWD_BUT_THIS_TIME_FOR_REAL" + + +/lib/ftp.c + +- if ((data->set.ftp_filemethod == FTPFILE_NOCWD) && ++ if ((data->set.ftp_filemethod == FTPFILE_NOCWD || ++ data->set.ftp_filemethod == FTPFILE_FULLPATH) && + + ++ if (data->set.ftp_filemethod == FTPFILE_FULLPATH) ++ { ++ //no CWDs happened => remember old working dir ++ //ftpc->prevmethod = ++ //ftpc->prevpath = ++ } ++ else ++ { + /* now store a copy of the directory we are in */ + free(ftpc->prevpath); + + [...] + + else + { + ftpc->prevpath = NULL; /* no path */ + free(path); + } + } + ++ } + + + switch (data->set.ftp_filemethod) + { + case FTPFILE_NOCWD: ++ case FTPFILE_FULLPATH: + + ++ if (data->set.ftp_filemethod == FTPFILE_FULLPATH) ++ ftpc->cwddone = TRUE; ++ else + if (ftpc->prevpath) ----------------- -| libcurl Bugs | ----------------- __________________________________________________________________________________________________________ https://github.com/curl/curl/issues/1455 @@ -51,63 +101,53 @@ Replace with: } if (skipIp) + __________________________________________________________________________________________________________ +/lib/ftp.c +https://github.com/curl/curl/pull/4332 -"wrong dir listing because libcurl remembers wrong CWD": https://github.com/curl/curl/issues/1782 +- else if (conn->bits.reuse && ftpc->entrypath) ++ else if (conn->bits.reuse && ftpc->entrypath && ++ !(ftpc->dirdepth && ftpc->dirs[0][0] == '/')) //no need to go to entrypath when we have an absolute path -=> "fixed" by adding only the "if (data->set.ftp_filemethod == FTPFILE_NOCWD)" below: https://github.com/curl/curl/issues/1811 -=> this is NOT enough! consider what happens for a reused connection that first used CURLFTPMETHOD_MULTICWD, now CURLFTPMETHOD_NOCWD: - - the code in ftp_state_cwd() will issue a CWD sequence that ends with "ftpc->cwdcount == 1"!!! See "if (++ftpc->cwdcount <= ftpc->dirdepth)" - => this skips the previous "fix" in https://github.com/curl/curl/issues/1718 with - if ((conn->data->set.ftp_filemethod == FTPFILE_NOCWD) && !ftpc->cwdcount) +__________________________________________________________________________________________________________ +/lib/ftp.c +https://github.com/curl/curl/pull/4348 -/lib/ftp.c: - if (ftpc->prevpath) - { -+ if (data->set.ftp_filemethod == FTPFILE_NOCWD) -+ { -+ /* -+ CURLFTPMETHOD_NOCWD -+ if the connection is used for the first time, *no* CWD takes place -+ if the connection is reused, ftp_state_cwd() issues a single "CWD ftpc->entrypath" before the operation -+ in both cases ftp_done() sets ftpc->prevpath to "" after a successfull FTP operation -+ ergo: "" corresponds to ftpc->entrypath, so we only ever need CWD if ftpc->prevpath != "" -+ => avoid needless "CWD /" and reduce folder traversal time with CURLFTPMETHOD_NOCWD by 15-20% -+ */ -+ if (strcmp(ftpc->prevpath, "") == 0) -+ { -+ infof(data, "Request has same path (\"%s\") as previous transfer\n", ftpc->prevpath); -+ ftpc->cwddone = TRUE; -+ } -+ } -+ else -+ { - /* prevpath is "raw" so we convert the input path before we compare the - strings */ - size_t dlen; - char* path; - CURLcode result = - Curl_urldecode(conn->data, data->state.path, 0, &path, &dlen, FALSE); - if (result) - { - freedirs(ftpc); - return result; - } - - dlen -= ftpc->file?strlen(ftpc->file):0; - if ((dlen == strlen(ftpc->prevpath)) && - !strncmp(path, ftpc->prevpath, dlen) && -- (ftpc->prevmethod == data->set.ftp_filemethod)) -+ true) //(ftpc->prevmethod == data->set.ftp_filemethod)) - { - infof(data, "Request has same path as previous transfer\n"); - ftpc->cwddone = TRUE; - } - free(path); -+ } - } +- size_t n = strlen(inpath); +- /* Check if path does not end with /, as then we cut off the file part */ +- if (inpath[n - 1] != '/') +- { +- /* chop off the file part if format is dir/dir/file */ +- slashPos = strrchr(inpath, '/'); +- n = slashPos - inpath; +- } + ++ /* chop off the file part if format is dir/file ++ otherwise remove the trailing slash for dir/dir/ ++ and full paths like %2f/ except for / */ ++ size_t n = strrchr(inpath, '/') - inpath; ++ if(n == 0) ++ ++n; +__________________________________________________________________________________________________________ + +/lib/vtls/openssl.c +https://github.com/curl/curl/issues/4329 + + case SSL_ERROR_ZERO_RETURN: /* no more data */ +- /* close_notify alert */ +- connclose(conn, "TLS close_notify"); +__________________________________________________________________________________________________________ + + +---------------- +| libssh2 Bugs | +---------------- +__________________________________________________________________________________________________________ +move the following constants from src/sftp.h to include/libssh2_sftp.h: + #define MAX_SFTP_OUTGOING_SIZE 30000 + #define MAX_SFTP_READ_SIZE 30000 __________________________________________________________________________________________________________ @@ -215,3 +255,16 @@ Backspace not working in filter dialog: http://www.freefilesync.org/forum/viewto +// g_source_attach(source, NULL); +// } __________________________________________________________________________________________________________ + +wxWidgets/GTK2 on some Linux systems incorrectly detects high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 +=> hack away high-DPI support for GTK2 (= pretend GTK2 has device independent pixels, which it clearly has not!) + +/include/wx/window.h: + + #include "wx/gtk/window.h" +- #ifdef __WXGTK3__ ++ //#ifdef __WXGTK3__ + #define wxHAVE_DPI_INDEPENDENT_PIXELS +- #endif ++ //#endif +__________________________________________________________________________________________________________ -- cgit From 57de308259b4d086e6623cd00591f02f63226d46 Mon Sep 17 00:00:00 2001 From: B Stack Date: Wed, 18 Sep 2019 10:46:56 -0400 Subject: update bugs.txt after re-release from upstream https://freefilesync.org/forum/viewtopic.php?t=6628 --- Bugs.txt | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) mode change 100755 => 100644 Bugs.txt (limited to 'Bugs.txt') diff --git a/Bugs.txt b/Bugs.txt old mode 100755 new mode 100644 index 551614a0..da0fe9b4 --- a/Bugs.txt +++ b/Bugs.txt @@ -1,9 +1,12 @@ -When manually compiling FreeFileSync, you should also fix the following bugs in its dependent libraries: +When manually compiling FreeFileSync, you should also fix the following bugs in its dependent libraries. +FreeFileSync generally uses the latest library versions and works with upstream to get the bugs fixed +that affect FreeFileSync. Therefore it is not recommended to compile against older library versions than +the ones mentioned below. The remaining issues that are yet to be fixed are listed in the following: ----------------- -| libcurl Bugs | ----------------- +------------------ +| libcurl 7.66.0 | +------------------ __________________________________________________________________________________________________________ /lib/setopt.c https://github.com/curl/curl/pull/4321 @@ -110,6 +113,13 @@ https://github.com/curl/curl/pull/4332 + else if (conn->bits.reuse && ftpc->entrypath && + !(ftpc->dirdepth && ftpc->dirs[0][0] == '/')) //no need to go to entrypath when we have an absolute path +__________________________________________________________________________________________________________ +/lib/ftp.c +https://github.com/curl/curl/issues/4342 + +- result = ftp_nb_type(conn, TRUE, FTP_LIST_TYPE); ++ result = ftp_nb_type(conn, data->set.prefer_ascii, FTP_LIST_TYPE); + __________________________________________________________________________________________________________ /lib/ftp.c https://github.com/curl/curl/pull/4348 @@ -136,14 +146,15 @@ ________________________________________________________________________________ https://github.com/curl/curl/issues/4329 case SSL_ERROR_ZERO_RETURN: /* no more data */ -- /* close_notify alert */ -- connclose(conn, "TLS close_notify"); + /* close_notify alert */ ++ if(num == FIRSTSOCKET) + connclose(conn, "TLS close_notify"); __________________________________________________________________________________________________________ ----------------- -| libssh2 Bugs | ----------------- +----------------- +| libssh2 1.9.0 | +----------------- __________________________________________________________________________________________________________ move the following constants from src/sftp.h to include/libssh2_sftp.h: #define MAX_SFTP_OUTGOING_SIZE 30000 @@ -151,9 +162,9 @@ move the following constants from src/sftp.h to include/libssh2_sftp.h: __________________________________________________________________________________________________________ ------------------- -| wxWidgets Bugs | ------------------- +------------------------------- +| wxWidgets master 2019-07-22 | +------------------------------- __________________________________________________________________________________________________________ Fix incorrect pane height calculations: -- cgit