5851974b20
Release fork infrastructure: - REDBEAR_RELEASE=0.1.1 with offline enforcement (fetch/distclean/unfetch blocked) - 195 BLAKE3-verified source archives in standard format - Atomic provisioning via provision-release.sh (staging + .complete sentry) - 5-phase improvement plan: restore format auto-detection, source tree validation (validate-source-trees.py), archive-map.json, REPO_BINARY fallback Archive normalization: - Removed 87 duplicate/unversioned archives from shared pool - Regenerated all archives in consistent format with source/ + recipe.toml - BLAKE3SUMS and manifest.json generated from stable tarball set Patch management: - verify-patches.sh: pre-sync dry-run report (OK/REVERSED/CONFLICT) - 121 upstream-absorbed patches moved to absorbed/ directories - 43 active patches verified clean against rebased sources - Stress test: base updated to upstream HEAD, relibc reset and patched Compilation fixes: - relibc: Vec imports in redox-rt (proc.rs, lib.rs, sys.rs) - relibc: unsafe from_raw_parts in mod.rs (2024 edition) - fetch.rs: rev comparison handles short/full hash prefixes - kibi recipe: corrected rev mismatch New scripts: restore-sources.sh, provision-release.sh, verify-sources-archived.sh, check-upstream-releases.sh, validate-source-trees.py, verify-patches.sh, repair-archive-format.sh, generate-manifest.py Documentation: AGENTS.md, README.md, local/AGENTS.md updated for release fork model
26 lines
1.1 KiB
Diff
26 lines
1.1 KiB
Diff
diff --git a/src/header/sys_timerfd/mod.rs b/src/header/sys_timerfd/mod.rs
|
|
index 0959d39..9a4a23e 100644
|
|
--- a/src/header/sys_timerfd/mod.rs
|
|
+++ b/src/header/sys_timerfd/mod.rs
|
|
@@ -86,7 +86,10 @@ pub extern "C" fn timerfd_create(clockid: clockid_t, flags: c_int) -> c_int {
|
|
Ok(path) => path,
|
|
Err(_) => return Err::<c_int, _>(Errno(EINVAL)).or_minus_one_errno(),
|
|
};
|
|
- let fd = Sys::open(CStr::borrow(&path), oflag, 0).or_minus_one_errno()?;
|
|
+ let fd = match Sys::open(CStr::borrow(&path), oflag, 0) {
|
|
+ Ok(fd) => fd,
|
|
+ Err(Errno(e)) => { return Err::<c_int, _>(Errno(e)).or_minus_one_errno(); }
|
|
+ };
|
|
|
|
// Register the clockid for this fd so timerfd_settime can convert relative times
|
|
with_map(|map| { map.insert(fd, clockid); });
|
|
@@ -107,7 +110,7 @@ pub unsafe extern "C" fn timerfd_settime(fd: c_int, flags: c_int, new: *const it
|
|
return -1;
|
|
}
|
|
let spec = unsafe { &*new };
|
|
- let mut value = spec.it_value;
|
|
+ let mut value = spec.it_value.clone();
|
|
|
|
// Convert relative time to absolute if TFD_TIMER_ABSTIME is not set
|
|
if flags & TFD_TIMER_ABSTIME == 0 {
|