omrzk
666a8ef7cd
Honor the symbolic link option when copying files
...
Inspect source links without following them when COPYFILE_SYM is requested, before rejecting directories. This makes the documented option recreate link text instead of copying the referent, including dangling and directory links. Preserve requested link timestamps and report link-creation errors without overwriting the destination. Cover direct calls, destination directories, normal dereferencing and the existing rsync file caller.
2026-11-14 12:41:18 +01:00
Joachim Wiberg
dff88a622d
Merge pull request #22 from omrzk/fix/copy-binary-file-streams
...
Preserve binary data when copying file streams
2026-11-14 12:38:36 +01:00
omrzk
2dfc02e67d
Preserve binary data when copying file streams
...
Copy the bytes returned by fread instead of treating each input chunk as a NUL-terminated string. Preserve the public stream positions and report read and write failures rather than returning success after a partial copy. Add binary boundary, current-position, native pipe error and full-device regression coverage.
2026-11-13 09:12:43 -06:00
Joachim Wiberg
b69d8a6013
Fix copyfile() not preserving source mode with restrictive umask
...
copyfile() passes the source mode to open(2), which applies the umask,
so a 0644 file copied with umask 0027 ends up 0640.
Apply the source mode with fchmod() after creating the destination.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2026-09-13 18:53:40 +02:00
Joachim Wiberg
e874608b76
Fix mkpath() ignoring mode when umask is more restrictive
...
mkpath(dir, 0755) with umask 0027 silently creates a 0750 directory,
since mkdir(2) applies the umask to the requested mode. Callers pass
an explicit mode and expect exactly that.
Apply the mode with chmod() after each successful mkdir().
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2026-09-13 17:17:37 +02:00
Joachim Wiberg
c1e050f93c
Update ChangeLog and bump version for v2.6.2 release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
v2.6.2
2025-11-22 21:59:46 +01:00
Joachim Wiberg
0e45929323
Make note of possible extensions
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-11-22 21:44:20 +01:00
Joachim Wiberg
958502d982
Fix memory leak in which() on realloc() failure
...
Avoid leaking memory when realloc() fails by using a temporary pointer
and only updating the original on success. Also remove redundant NULL
check before free().
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-11-22 20:48:35 +01:00
Joachim Wiberg
f0cb0b7bf2
.github: bump actions
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2025-04-28 08:34:00 +02:00
Joachim Wiberg
ee5788d49b
Create SECURITY.md policy
2025-04-28 07:54:35 +02:00
Joachim Wiberg
9bfe54f959
pidfile(): ensure prefix path ends with slash
...
For some builds using Buildroot, the system default _PATH_VARRUN did not
include a trailing slas '/', which cause the pidfile() function to fail.
Example:
pidfile("arg") => "/var/runarg.pid"
Since the __pidfile_path can be overridden we add a check if that prefix
path ends with '/', if not we add one in the path composition.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2024-03-25 05:23:41 +01:00
Joachim Wiberg
960e7f69ed
Update changelog and bump version for v2.6.1 release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
v2.6.1
2023-10-15 10:22:36 +02:00
Joachim Wiberg
68bc83f08f
FTBFS uClibc and musl libc, lite.h missing stdarg.h include
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-10-15 10:21:30 +02:00
Joachim Wiberg
986d29caf0
m4: sync with latest ax_prog_doxygen.m4
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-10-15 10:18:33 +02:00
Joachim Wiberg
2d9f8f595d
Update ChangeLog and bump version to v2.6.0 GA
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
v2.6.0
2023-09-17 16:59:24 +02:00
Joachim Wiberg
3f8ad99f1f
Fix varargs bug/usage, found by Coverity Scan
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 12:47:59 +02:00
Joachim Wiberg
63e25ecae4
.github: use new syntax for setting variables
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 12:47:43 +02:00
Joachim Wiberg
6c53ee819b
test: adjust times again
...
Running the tests in a Debian container seem to be taking way too long.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 12:26:08 +02:00
Joachim Wiberg
da21e02be0
Update ChangeLog diffs
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 12:19:13 +02:00
Joachim Wiberg
c33500c372
.github: import release job from Mg project
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 12:17:53 +02:00
Joachim Wiberg
bed65c84e6
.github: bump action versions, node12 deprecated
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 12:17:27 +02:00
Joachim Wiberg
c4f262b721
debian: prepare new release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 12:17:14 +02:00
Joachim Wiberg
563b387ec7
test: increase delay waiting for background job in Debian container
...
GitHub action fails, probably due to too short wait delay.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 12:11:51 +02:00
Joachim Wiberg
b93d74c065
Update ChangeLog and bump version for v2.6.0-rc1
...
Bump ABI: 5.3.2 -> 5.4.0
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 12:00:04 +02:00
Joachim Wiberg
c1f7bc2bbb
Update copyright years
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 11:56:26 +02:00
Joachim Wiberg
99f644b512
doc: document new procfile functions
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 11:48:37 +02:00
Joachim Wiberg
92bb0ca399
runbg: new helper function inspired by the Infix project
...
The runbg() function is a delayed execvp() that has double-forked to the
background (to not create zombies). It is useful for running commands
in the background for APIs that need to return a reply, e.g. a NETCONF
RPC to reboot the system.
Compared to the original in Infix, this version double forks to reparent
itself to PID 1 (init), closes all open files, including stdio.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 11:00:09 +02:00
Joachim Wiberg
921afdecb4
Minor, indent
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 10:49:25 +02:00
Joachim Wiberg
47b02df823
Minor, spellcheck
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-09-17 10:49:13 +02:00
Joachim Wiberg
4dd14dac42
New helper functions to read/write /proc and /sys style files
...
From the Infix project.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-06-11 13:19:05 +02:00
Joachim Wiberg
97a3d43e9c
Reminder
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-06-11 12:47:49 +02:00
Joachim Wiberg
784a667584
New helper function, fexistf(), made for the Infix project
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-06-11 12:18:45 +02:00
Joachim Wiberg
1f6ff90d9e
New helper function, vfopenf(), inspired by the Infix project
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-06-11 12:16:58 +02:00
Joachim Wiberg
9eb847e56c
New helper function, popenf(), from the Infix project
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-06-11 12:03:24 +02:00
Joachim Wiberg
55272c13f7
Start new devel cycle for v2.6.0 release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-06-11 11:38:01 +02:00
Joachim Wiberg
34097d33b6
Update changelog and bump version for v2.5.3 release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
v2.5.3
2023-04-08 07:05:58 +02:00
Joachim Wiberg
311288eec9
test: major refactor and cleanup
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-08 06:51:25 +02:00
Joachim Wiberg
63cf8867c5
test: refactor, each test in separate func
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-08 06:00:47 +02:00
Joachim Wiberg
ac7b4194cf
Fix copyfile() regression introduced in 4e9b5c13
...
Caught in release cycle.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-08 05:55:48 +02:00
Joachim Wiberg
e44aaa4fd5
test: slight refactor to add diff -q A B check to fcopyfile()
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-08 05:55:48 +02:00
Joachim Wiberg
97cb2cb87c
test: reproduce copyfile() off by one regression
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-08 05:55:39 +02:00
Joachim Wiberg
837c3f23be
Prepare for v2.5.3 bug fix release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-02 22:20:03 +02:00
Joachim Wiberg
4e9b5c13c1
copyfile: allow copying empty files to non-existing destination dirs
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-02 22:17:47 +02:00
Joachim Wiberg
d61b847e55
rsync: fix check for missing dst when dst is a directory
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-02 22:17:09 +02:00
Joachim Wiberg
90fdcdeb39
rsync: fix return value when copying a single file
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-02 22:16:50 +02:00
Joachim Wiberg
e36ac8f462
test: finalize rsync unit test to reproduce bugs
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2023-04-02 22:16:21 +02:00
Joachim Wiberg
eb3bb94cfa
Update changelog and bump version for v2.5.2 release
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
v2.5.2
2022-04-17 14:19:11 +02:00
Joachim Wiberg
11b9c88732
Add printf format attribute to all vararg functions
...
Signed-off-by: Joachim Wiberg <troglobit@gmail.com >
2022-04-17 14:11:31 +02:00
Joachim Wiberg
11d4aafce1
Merge pull request #20 from yangfl/upstream
...
Fix for some non-linux
2022-01-27 11:34:50 +01:00
yangfl
5cdc5736f3
Replace mknod() with creat()
...
For mknod(), mode must be S_IFIFO otherwise the behaviour is unspecified
according to SUS, and apparently Debian/kFreeBSD is in the hater list.
2022-01-27 00:11:00 +08:00