| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
libssl isn't required for libarchive. Remove libssl so the installed .pc
file doesn't cause consumers to subsequently overlink libssl into their
code.
This doesn't affect how the code is linked -- only consumers of the
pkg-config specified spec.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WARNS=6 on FreeBSD passes several CFLAGS that causes the previous code
to fail with `-Wincompatible-pointer-types-discards-qualifiers` when
compiled with clang.
This particular change adjusts the code to be
`-Wincompatible-pointer-types-discards-qualifiers` clean. This change
changes the calls to use OSSL_PARAM macro abbreviated calls, instead of
calling more verbose (and less documented) callers.
While here, also address a `mac` object leak if `ctx` cannot be
allocated cleanly by always free'ing `mac` after it's been attached to
`ctx`.
Co-authored-by: Pierre Pronchery <pierre@freebsdfoundation.org>
Sponsored by: The FreeBSD Foundation
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clang 16 introduced a warning about single bit bitfields in structs,
which is triggered by a few libarchive formats:
libarchive/archive_write_set_format_7zip.c:1541:13: error: implicit
truncation from 'int' to a one-bit wide bit-field changes value from 1
to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
file->dir = 1;
^ ~
This is because single bit bitfields only support values -1 and 0, if
they are signed.
For bitfields with two or more bits this can be intentional, but single
bit bitfields are typically used as booleans, so it is better to make
them unsigned.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Now uses 33 bits (the maximum possible) in the ustar header in order
to support times out to 2106.
Fixes #1837
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Without this patch, `bsdcpio_test_option_c` failed after 2038-01-19 with
```
.../libarchive-3.6.2/cpio/test/test_option_c.c:143: Assertion failed: t >= now - 2
.../libarchive-3.6.2/cpio/test/test_option_c.c:169: Assertion failed: t >= now - 2
.../libarchive-3.6.2/cpio/test/test_option_c.c:205: Assertion failed: t >= now - 2
```
Background:
As part of my work on reproducible builds for openSUSE, I check that
software still gives identical build results in the future.
The usual offset is +16 years, because that is how long I expect some
software will be used in some places.
This showed up failing tests in our package build.
See https://reproducible-builds.org/ for why this matters.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When the `zstd:frame-per-file` option is specified, the zstd filter will start a new frame when flushed, i.e. for each file in the archive.
The `zstd:min-frame-size=N` option modifies the `zstd:frame-per-file` option in that it will not start a new frame unless the current one exceeds `N` bytes.
When the `zstd:max-frame-size=N` option is specified, the zstd filter will start a new frame any time the compressed size of the previous one exceeds `N` bytes.
These options decrease compression efficiency by a varying amount (depending on the exact composition of its contents) but render the tarball seekable, to a certain extent.
|
|
|
|
|
|
| |
* Add a flush() method to write filters.
* Add an __archive_write_filters_flush() function which iterates over filters in order and invokes the flush method for any filter that has one and that has written data.
* Call __archive_write_filters_flush() before writing a new header.
|
| |
|
|
|
|
| |
Because at that point, you may as well replace the whole thing with
strcmp
|
|
|
|
| |
We do not need to check TIME_WITH_SYS_TIME anymore. We can check
HAVE_SYS_TIME_H and not bother checking for C99.
|
|
|
|
|
|
|
|
|
| |
Otherwise there are 32/64-bit pointer conversions going on. In Windows
since MSVC2005, time_t has been 64-bit. MinGW needs a hack to get 64-bit
time_t.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|
|
|
|
|
| |
These were missing from 2d329073435d36065ce30bfd29428f6a45e41016
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hi,
Thanks for writing and maintaining libarchive!
What do you think about this trivial change that does not add "iconv" to
the pkg-config file's list of required packages unless it is actually
needed? On at least Debian GNU/Linux systems, the iconv(3) function is
part of the system C library and there is no Debian package that
installs an iconv.pc file, so I had to make this change to the Debian
package of libarchive.
Thanks again, and keep up the great work!
G'luck,
Peter
|
|
|
| |
Issue #1826
|
|
|
| |
Issue #1828
|
|
|
| |
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
| |
|
| |
|
|
|
|
| |
HMAC_*() functions have been deprecated since OpenSSL 3.0
|
| |
|
|
|
|
|
| |
Reported by: GitHub CodeQL
Code Scanning Alert: 125
|
|
|
|
|
| |
Reported by: CodeQL
Code Scanning Alert: 126
|
|
|
|
|
| |
Reported by: CodeQL
Code Scanning Alert: 127
|
|
|
|
|
| |
Reported by: CodeQL
Code Scanning Alert: 129
|
|
|
|
|
| |
Reported by: GitHub CodeQL
Code Scanning Alert: 190
|
|
|
|
|
| |
Reported by: GitHub CodeQL
Code Scanning Alert: 189
|
|
|
|
|
| |
Reported by: GitHub CodeQL
Code scanning alerts: 214, 215, 216
|
|
|
|
| |
Use localtime_r() or _localtime64_s() if available
|
|
|
|
| |
Catch one more uncatched strcpy() and strcat()
|
|
|
|
|
| |
Use fchmod() instead of chmod() if available
Use strncpy() and strncat() instead of strcpy() and strcat()
|
|
|
|
| |
Use strncpy() and strncat() instead of strcpy() and strcat()
|
|
|
|
| |
Found by: GitHub CodeQL
|
|
|
| |
Co-authored-by: LGTM Migrator <lgtm-migrator@users.noreply.github.com>
|
|\
| |
| | |
Use FILE_SHARE_WRITE and FILE_SHARE_DELETE when opening files on Windows
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Many standard libraries(
[libc++](https://github.com/llvm/llvm-project/blob/main/libcxx/src/filesystem/posix_compat.h#L159),
[go](https://cs.opensource.google/go/go/+/refs/tags/go1.19.3:src/syscall/syscall_windows.go;l=331),
[rust](https://doc.rust-lang.org/src/std/os/windows/fs.rs.html#126-131)
) open files on windows with `FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE`
mode by default. Libarchive uses only `FILE_SHARE_READ`, so when file is
being opened by any program that uses these standard libraries
libarchive fails to open it. Here we change libarchive shared flags, so
it plays well with common practice in other programs.
|
|\ \
| | |
| | |
| | |
| | | |
EwgeniWolowik/extend_cleanup_pathname_by_windows_remote_path
Fixed issue #1770: base dir deals with network drive paths like \\server\file
|
| | |
| | |
| | |
| | | |
\\server\file
|
|\ \ \
| | | |
| | | | |
free mstr to fix memory leaks
|
| | |/
| |/|
| | | |
free mstr to fix memory leaks.#1801
|
|\ \ \
| | | |
| | | | |
archive_entry_pathname() tries UTF-8 if MBS returns EILSEQ
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
For better pathname portability across OS, in particular Windows to Linux.
Original bug: unrar in https://bugzilla.redhat.com/show_bug.cgi?id=2120926
modified: libarchive/archive_entry.c
|
|\ \ \ \
| | | | |
| | | | | |
Fix CMake warning
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The warnings occurs at least with CMake version 3.24. It is caused by
CMake trying to find the gcc library due to case sensitivity.
The warning message was:
```
CMake Warning (dev) at /usr/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to `find_package_handle_standard_args` (LIBGCC)
does not match the name of the calling package (LibGCC). This can lead to
problems in calling code that expects `find_package` result variables
(e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
build/cmake/FindLibGCC.cmake:17 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:1269 (FIND_PACKAGE)
This warning is for project developers. Use -Wno-dev to suppress it.
```
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
use regfree to release the memory
|
|/ / / /
| | | |
| | | | |
use regfree() to release the memory requested by the regular expression.#1804
|