mirror of
https://github.com/LiBwrt-op/openwrt-6.x.git
synced 2025-12-17 09:16:59 +00:00
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>
This commit is contained in:
parent
84b7057fe3
commit
2d067b0dd5
@ -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 },
|
||||
|
||||
@ -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 },
|
||||
|
||||
Loading…
Reference in New Issue
Block a user