| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
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
|
|\ \ \ \
| | | | |
| | | | | |
Extend the usage of the DONT_FAIL_ON_CRC_ERROR macro
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
DONT_FAIL_ON_CRC_ERROR is already used in the rar5 support code, so let's make
use of it in another places as well. This should tremendously help with
fuzzing.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix Windows symlink checks can reads past end of string
|
| | | | | | |
|
| |/ / / / |
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
cmake config ${} to @@
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
meson's cmake config file handling does not support mixing ${} and @@ in
the same file. Switch to @@ for consistency.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|\ \ \ \
| |/ / /
|/| | | |
cmake: set WINDOWS_VERSION to WIN10 by default
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
libarchive:uninitialized value
|
| | | |
| | | |
| | | | |
Uninitialized variable crash error in oss_fuzz memory type test
|
|\ \ \ \
| | | | |
| | | | | |
cmake: update possible values of WINDOWS_VERSION to also support Windows 10
|
| | |_|/
| |/| | |
|
|\ \ \ \
| | | | |
| | | | | |
Support reading mtree files with tabs
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Commit 45c5008c4 requires all characters in an mtree file to be
printable, as determined by `isprint()`. This broke support for
reading mtree files with tab characters, which are valid and otherwise
supported by libarchive. Allow them. Add a unit test.
Fixes #1782
|
|\ \ \ \
| |/ / /
|/| | | |
cmake: use pkgconfig for zstd lookup
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As libzstd typically comes with a pkgconfig file, use it.
Fixes compilation at least on OpenWrt where host paths were leaking into
the build.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|\ \ \
| |_|/
|/| | |
Fixes for running tests on Windows (or Wine)
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
libarchive: Remove unneeded linux/fs.h include
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These headers are in conflict and only one is needed by
archive_read_disk_posix.c therefore include linux/fs.h if it exists
otherwise include sys/mount.h
It also helps compiling with glibc 2.36
where sys/mount.h conflicts with linux/mount.h see [1]
[1] https://sourceware.org/glibc/wiki/Release/2.36
|
|\ \ \ \
| | | | |
| | | | | |
rar5: Fix random initial offset if using archive_read_data_into_fd
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
archive_read_data_into_fd passes a pointer to an uninitialized
variable as an output 'offset' argument into archive_read_data_block
function, and expects that this variable will always be initialized
inside of it.
Like this:
size_t size;
int64_t offset;
archive_read_data_block(a, &buf, &size, &offset);
/* some work with offset here */
But rar5 implementation of archive_read_data_block function leaves the
'offset' argument uninitialized in one code path (if file is
compressed and there are no uncompressed pending data blocks).
As a result, archive_read_data_info_fd function is using an
uninitialized variable as an initial offset of an output file. And in
most cases it causes an appending sparse block of a random size at the
beginning of the output file.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Hide internal symbols on platforms that support visibility annotations
|
| | | | | |
|
|/ / / /
| | | |
| | | |
| | | | |
discussion in gh-1017).
|
|\ \ \ \
| | | | |
| | | | | |
Validate entry_bytes_remaining in pax_attribute
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The `size` attribute may contain a negative or too large value. Check
the range of the `entry_bytes_remaining` in `pax_attribute` the same way
as `header_common`. The test which is added passes both with and without
this change in a normal debug build. It is necessary to run with
`-fsanitize=undefined` to see that the undefined behavior is avoided.
Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=48467
|
|\ \ \ \
| |/ / /
|/| | | |
libarchive: Handle a `calloc` returning NULL (fixes #1754)
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
include zstd 1.5.2 on windows ci builds
|
| |\ \ \ |
|
| |\ \ \ \ |
|
| |\ \ \ \ \ |
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
# Conflicts:
# build/ci/github_actions/ci.cmd
|
| | | | | | | | |
|