summaryrefslogtreecommitdiffstatshomepage
path: root/unix/main.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-06-22 19:08:32 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-06-22 19:08:32 +0300
commit69d0a1c540da569e0a70d2102ed8463debfe3ccf (patch)
tree8fea66ec1495a00b447b2b7865aa683f954432c4 /unix/main.c
parenta96cc824bdacb34ced0edef523181c215fba313b (diff)
downloadmicropython-69d0a1c540da569e0a70d2102ed8463debfe3ccf.tar.gz
micropython-69d0a1c540da569e0a70d2102ed8463debfe3ccf.zip
unix: uClibc doesn't like NULL as a buffer arg to realpath().
So, allocate one explicitly.
Diffstat (limited to 'unix/main.c')
-rw-r--r--unix/main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/unix/main.c b/unix/main.c
index 26736e4318..c04045a3a0 100644
--- a/unix/main.c
+++ b/unix/main.c
@@ -365,7 +365,8 @@ int main(int argc, char **argv) {
return usage(argv);
}
} else {
- char *basedir = realpath(argv[a], NULL);
+ char *pathbuf = malloc(PATH_MAX);
+ char *basedir = realpath(argv[a], pathbuf);
if (basedir == NULL) {
fprintf(stderr, "%s: can't open file '%s': [Errno %d] ", argv[0], argv[a], errno);
perror("");
@@ -377,7 +378,7 @@ int main(int argc, char **argv) {
// Set base dir of the script as first entry in sys.path
char *p = strrchr(basedir, '/');
path_items[0] = MP_OBJ_NEW_QSTR(qstr_from_strn(basedir, p - basedir));
- free(basedir);
+ free(pathbuf);
for (int i = a; i < argc; i++) {
mp_obj_list_append(mp_sys_argv, MP_OBJ_NEW_QSTR(qstr_from_str(argv[i])));