From: Felix Fietkau Date: Thu, 16 Oct 2025 18:57:51 +0000 (+0000) Subject: ucode: fix EOF detection in the non-blocking read patch X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=2d067b0dd545825d66497b78487135ee887cab6b;p=openwrt%2Fstaging%2Fnbd.git 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 --- 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 --- 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 + 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 + 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 * 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 --- 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 * 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 },