char path[256], sym[256];
unsigned char *p = (unsigned char *)sym + 32 + LWS_PRE, *start = p;
unsigned char *end = p + sizeof(sym) - 32 - LWS_PRE;
+ size_t len;
int n, spin = 0;
snprintf(path, sizeof(path) - 1, "%s/%s", origin, uri);
lwsl_debug(" %s mode %d\n", path, S_IFMT & st.st_mode);
#if !defined(WIN32)
if ((S_IFMT & st.st_mode) == S_IFLNK) {
- if (readlink(path, sym, sizeof(sym))) {
+ len = readlink(path, sym, sizeof(sym) - 1);
+ if (len) {
lwsl_err("Failed to read link %s\n", path);
goto bail;
}
+ sym[len] = '\0';
lwsl_debug("symlink %s -> %s\n", path, sym);
snprintf(path, sizeof(path) - 1, "%s", sym);
}