Skip to content

Commit

Permalink
Fixed handling of encode arg in fs.readdir() and fs.realpath().
Browse files Browse the repository at this point in the history
The issue was introduced in 98c6570 (0.8.0).
  • Loading branch information
xeioex committed Sep 4, 2024
1 parent a3a4dd4 commit 6259cca
Showing 1 changed file with 21 additions and 12 deletions.
33 changes: 21 additions & 12 deletions external/njs_fs_module.c
Original file line number Diff line number Diff line change
Expand Up @@ -1940,14 +1940,19 @@ njs_fs_readdir(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,

encoding = NULL;

if (!njs_value_is_string(njs_value_arg(&encode))) {

if (njs_value_is_string(njs_value_arg(&encode))) {
njs_value_string_get(njs_value_arg(&encode), &s);

if (!njs_strstr_eq(&s, &string_buffer)) {
encoding = njs_buffer_encoding(vm, njs_value_arg(&encode), 1);
if (njs_slow_path(encoding == NULL)) {
return NJS_ERROR;
}
} else {
s.length = 0;
s.start = NULL;
}

if (!njs_strstr_eq(&s, &string_buffer)) {
encoding = njs_buffer_encoding(vm, njs_value_arg(&encode), 1);
if (njs_slow_path(encoding == NULL)) {
return NJS_ERROR;
}
}

Expand Down Expand Up @@ -2080,14 +2085,18 @@ njs_fs_realpath(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,

encoding = NULL;

if (!njs_value_is_string(njs_value_arg(&encode))) {
if (njs_value_is_string(njs_value_arg(&encode))) {
njs_value_string_get(njs_value_arg(&encode), &s);

if (!njs_strstr_eq(&s, &string_buffer)) {
encoding = njs_buffer_encoding(vm, njs_value_arg(&encode), 1);
if (njs_slow_path(encoding == NULL)) {
return NJS_ERROR;
}
} else {
s.length = 0;
s.start = NULL;
}

if (!njs_strstr_eq(&s, &string_buffer)) {
encoding = njs_buffer_encoding(vm, njs_value_arg(&encode), 1);
if (njs_slow_path(encoding == NULL)) {
return NJS_ERROR;
}
}

Expand Down

0 comments on commit 6259cca

Please sign in to comment.