diff --git a/dump1090.h b/dump1090.h index 9ad4de0..eea553b 100644 --- a/dump1090.h +++ b/dump1090.h @@ -57,6 +57,7 @@ #include #include #include + #include #include "rtl-sdr.h" #include "anet.h" #else diff --git a/net_io.c b/net_io.c index a979883..c73232d 100644 --- a/net_io.c +++ b/net_io.c @@ -762,14 +762,16 @@ int handleHTTPRequest(struct client *c, char *p) { } else { struct stat sbuf; int fd = -1; - char *rp, *hrp; + char rp[PATH_MAX], hrp[PATH_MAX]; + + if (!realpath(getFile, rp)) + rp[0] = 0; + if (!realpath(HTMLPATH, hrp)) + strcpy(hrp, HTMLPATH); - rp = realpath(getFile, NULL); - hrp = realpath(HTMLPATH, NULL); - hrp = (hrp ? hrp : HTMLPATH); clen = -1; content = strdup("Server error occured"); - if (rp && (!strncmp(hrp, rp, strlen(hrp)))) { + if (!strncmp(hrp, rp, strlen(hrp))) { if (stat(getFile, &sbuf) != -1 && (fd = open(getFile, O_RDONLY)) != -1) { content = (char *) realloc(content, sbuf.st_size); if (read(fd, content, sbuf.st_size) != -1) {