aboutsummaryrefslogtreecommitdiffstats
path: root/tools/gpgtar-create.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2022-03-04 13:54:17 +0000
committerWerner Koch <[email protected]>2022-03-08 06:50:17 +0000
commit70b738f93f1ae6b606af701f6def55a6f0f3d04b (patch)
tree9ccf96873d95fb17944ed4b1d08b7df0328f9731 /tools/gpgtar-create.c
parentcommon,w32: Support file names longer than MAX_PATH in iobuf. (diff)
downloadgnupg-70b738f93f1ae6b606af701f6def55a6f0f3d04b.tar.gz
gnupg-70b738f93f1ae6b606af701f6def55a6f0f3d04b.zip
gpgtar,w32: Support file names longer than MAX_PATH.
* tools/gpgtar.c: Replace assert by log_assert. * tools/gpgtar-extract.c: Ditto. (extract_regular): Create files with sysopen flag. * tools/gpgtar-create.c (scan_directory): Use gpgrt_fname_to_wchar. -- Note that for this change libgpg-error 1.45 is required for Windows.
Diffstat (limited to 'tools/gpgtar-create.c')
-rw-r--r--tools/gpgtar-create.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/tools/gpgtar-create.c b/tools/gpgtar-create.c
index 80860befd..d17467077 100644
--- a/tools/gpgtar-create.c
+++ b/tools/gpgtar-create.c
@@ -36,7 +36,6 @@
# include <pwd.h>
# include <grp.h>
#endif /*!HAVE_W32_SYSTEM*/
-#include <assert.h>
#include "../common/i18n.h"
#include "../common/exectool.h"
@@ -114,7 +113,7 @@ fillup_entry_w32 (tar_header_t hdr)
for (p=hdr->name; *p; p++)
if (*p == '/')
*p = '\\';
- wfname = utf8_to_wchar (hdr->name);
+ wfname = gpgrt_fname_to_wchar (hdr->name);
for (p=hdr->name; *p; p++)
if (*p == '\\')
*p = '/';
@@ -345,7 +344,7 @@ scan_directory (const char *dname, scanctrl_t scanctrl)
for (p=fname; *p; p++)
if (*p == '/')
*p = '\\';
- wfname = utf8_to_wchar (fname);
+ wfname = gpgrt_fname_to_wchar (fname);
xfree (fname);
if (!wfname)
{
@@ -448,7 +447,7 @@ scan_recursive (const char *dname, scanctrl_t scanctrl)
}
scanctrl->nestlevel++;
- assert (scanctrl->flist_tail);
+ log_assert (scanctrl->flist_tail);
start_tail = scanctrl->flist_tail;
scan_directory (dname, scanctrl);
stop_tail = scanctrl->flist_tail;
@@ -903,7 +902,7 @@ write_file (estream_t stream, tar_header_t hdr)
if (hdr->typeflag == TF_REGULAR)
{
- infp = es_fopen (hdr->name, "rb");
+ infp = es_fopen (hdr->name, "rb,sysopen");
if (!infp)
{
err = gpg_error_from_syserror ();
@@ -1142,7 +1141,7 @@ gpgtar_create (char **inpattern, const char *files_from, int null_names,
if (!strcmp (opt.outfile, "-"))
outstream = es_stdout;
else
- outstream = es_fopen (opt.outfile, "wb");
+ outstream = es_fopen (opt.outfile, "wb,sysopen");
if (!outstream)
{
err = gpg_error_from_syserror ();