MIRROR: javascript for ๐Ÿœ's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

improve error message for access

+8 -5
+8 -5
src/modules/fs.c
··· 405 405 406 406 static jsval_t builtin_fs_readBytesSync(struct js *js, jsval_t *args, int nargs) { 407 407 if (nargs < 1) return js_mkerr(js, "readBytesSync() requires a path argument"); 408 - 409 408 if (js_type(args[0]) != JS_STR) return js_mkerr(js, "readBytesSync() path must be a string"); 410 409 411 410 size_t path_len; ··· 1012 1011 1013 1012 struct stat st; 1014 1013 int result = stat(path_cstr, &st); 1015 - free(path_cstr); 1016 1014 1017 1015 if (result != 0) { 1018 1016 const char *code = errno_to_code(errno); 1019 - jsval_t err = js_mkerr(js, "Failed to stat file: %s", strerror(errno)); 1017 + jsval_t err = js_mkerr(js, "%s: %s, stat '%s'", code, strerror(errno), path_cstr); 1020 1018 js_set(js, js->thrown_value, "code", js_mkstr(js, code, strlen(code))); 1019 + free(path_cstr); 1020 + 1021 1021 return err; 1022 1022 } 1023 1023 1024 + free(path_cstr); 1024 1025 return create_stats_object(js, &st); 1025 1026 } 1026 1027 ··· 1127 1128 if (!path_cstr) return js_mkerr(js, "Out of memory"); 1128 1129 1129 1130 int result = access(path_cstr, mode); 1130 - free(path_cstr); 1131 1131 1132 1132 if (result != 0) { 1133 1133 const char *code = errno_to_code(errno); 1134 - jsval_t err = js_mkerr(js, "Access denied: %s", strerror(errno)); 1134 + jsval_t err = js_mkerr(js, "%s: %s, access '%s'", code, strerror(errno), path_cstr); 1135 1135 js_set(js, js->thrown_value, "code", js_mkstr(js, code, strlen(code))); 1136 + free(path_cstr); 1137 + 1136 1138 return err; 1137 1139 } 1138 1140 1141 + free(path_cstr); 1139 1142 return js_mkundef(); 1140 1143 } 1141 1144