diff --git a/apps/plugins/lua/fscanf.c b/apps/plugins/lua/fscanf.c index 25058af7da..9f5f129d3c 100644 --- a/apps/plugins/lua/fscanf.c +++ b/apps/plugins/lua/fscanf.c @@ -266,7 +266,7 @@ static int scan(int (*peek)(void *userp), static int fspeek(void *userp) { - int fd = (int) userp; + int fd = *((int*) userp); char buf = 0; if(rb->read(fd, &buf, 1) == 1) rb->lseek(fd, -1, SEEK_CUR); @@ -275,7 +275,8 @@ static int fspeek(void *userp) static void fspop(void *userp) { - rb->lseek((int) userp, 1, SEEK_CUR); + int fd = *((int*) userp); + rb->lseek(fd, 1, SEEK_CUR); } int PREFIX(fscanf)(int fd, const char *fmt, ...) @@ -284,7 +285,7 @@ int PREFIX(fscanf)(int fd, const char *fmt, ...) va_list ap; va_start(ap, fmt); - r = scan(fspeek, fspop, (void*) fd, fmt, ap); + r = scan(fspeek, fspop, &fd, fmt, ap); va_end(ap); return r; }