diff options
| author | Felix Fietkau | 2025-10-16 18:57:51 +0000 |
|---|---|---|
| committer | Felix Fietkau | 2025-10-16 18:58:55 +0000 |
| commit | 2d067b0dd545825d66497b78487135ee887cab6b (patch) | |
| tree | e4fbf0085ce684f427834982c7e161f5c754a70a | |
| parent | 84b7057fe3a83b32b69da4beb26d3f9d81a75213 (diff) | |
| download | openwrt-2d067b0dd545825d66497b78487135ee887cab6b.tar.gz | |
ucode: fix EOF detection in the non-blocking read patch
size = 0 means EOF - do not return an empty string in this case
(which implies no data available).
Signed-off-by: Felix Fietkau <nbd@nbd.name>
| -rw-r--r-- | package/utils/ucode/patches/121-fs-add-read_nb-method-for-non-blocking-reads.patch | 10 | ||||
| -rw-r--r-- | package/utils/ucode/patches/122-fs-add-mkdtemp-method-for-creating-temporary-directo.patch | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/package/utils/ucode/patches/121-fs-add-read_nb-method-for-non-blocking-reads.patch b/package/utils/ucode/patches/121-fs-add-read_nb-method-for-non-blocking-reads.patch index 8566ad158b..f258869239 100644 --- a/package/utils/ucode/patches/121-fs-add-read_nb-method-for-non-blocking-reads.patch +++ b/package/utils/ucode/patches/121-fs-add-read_nb-method-for-non-blocking-reads.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/lib/fs.c +++ b/lib/fs.c -@@ -674,6 +674,112 @@ uc_fs_read(uc_vm_t *vm, size_t nargs) +@@ -674,6 +674,116 @@ uc_fs_read(uc_vm_t *vm, size_t nargs) } /** @@ -65,6 +65,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> + FILE **fp = uc_fn_this("fs.file"); + char *buf = NULL; + ssize_t n_read; ++ uc_value_t *rv; + size_t limit = 4096; + int fd; + @@ -113,7 +114,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> + err_return(errno); + } + -+ uc_value_t *rv = ucv_string_new_length(buf, (size_t)n_read); ++ if (!n_read) ++ return NULL; ++ ++ rv = ucv_string_new_length(buf, (size_t)n_read); + free(buf); + + return rv; @@ -123,7 +127,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> * Writes a chunk of data to the file handle. * * In case the given data is not a string, it is converted to a string before -@@ -2910,6 +3016,7 @@ static const uc_function_list_t proc_fns +@@ -2910,6 +3020,7 @@ static const uc_function_list_t proc_fns static const uc_function_list_t file_fns[] = { { "read", uc_fs_read }, diff --git a/package/utils/ucode/patches/122-fs-add-mkdtemp-method-for-creating-temporary-directo.patch b/package/utils/ucode/patches/122-fs-add-mkdtemp-method-for-creating-temporary-directo.patch index a92dac3f43..e6da8bf525 100644 --- a/package/utils/ucode/patches/122-fs-add-mkdtemp-method-for-creating-temporary-directo.patch +++ b/package/utils/ucode/patches/122-fs-add-mkdtemp-method-for-creating-temporary-directo.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/lib/fs.c +++ b/lib/fs.c -@@ -2632,6 +2632,86 @@ uc_fs_mkstemp(uc_vm_t *vm, size_t nargs) +@@ -2636,6 +2636,86 @@ uc_fs_mkstemp(uc_vm_t *vm, size_t nargs) } /** @@ -97,7 +97,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> * Checks the accessibility of a file or directory. * * The optional modes argument specifies the access modes which should be -@@ -3065,6 +3145,7 @@ static const uc_function_list_t global_f +@@ -3069,6 +3149,7 @@ static const uc_function_list_t global_f { "basename", uc_fs_basename }, { "lsdir", uc_fs_lsdir }, { "mkstemp", uc_fs_mkstemp }, |