Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
24 lines
765 B
C
24 lines
765 B
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
static const char from[] = "/var/lib/fprint/fw";
|
|
static const char to[] = "@to@";
|
|
|
|
FILE* fopen_wrapper(const char* fn, const char* mode) {
|
|
size_t fn_len = strlen(fn);
|
|
size_t from_len = strlen(from);
|
|
if (fn_len > from_len && memcmp(fn, from, from_len) == 0) {
|
|
size_t to_len = strlen(to);
|
|
char* rewritten = calloc(fn_len + (to_len - from_len) + 1, 1);
|
|
memcpy(rewritten, to, to_len);
|
|
memcpy(rewritten + to_len, fn + from_len, fn_len - from_len);
|
|
|
|
printf("fopen_wrapper.c: Replacing path '%s' with '%s'\n", fn, rewritten);
|
|
FILE* result = fopen(rewritten, mode);
|
|
free(rewritten);
|
|
return result;
|
|
}
|
|
return fopen(fn, mode);
|
|
}
|