commit - b91d801835eb928cf8379ebefe2add66ed98f61c
commit + 77f906b3cf1c549a28c0cd767e2244e470f598bf
blob - 648500bf17d5e80bbfe5a0243fdf3522d167598c
blob + 34e32cfd4c7264484ab03c697f905c622541e8c7
--- deskd.c
+++ deskd.c
}
/* Strip query string from URI to get the path. */
- char *path_copy = strdup(uri);
- if (path_copy == NULL)
- return 1;
- char *qmark = strchr(path_copy, '?');
+ char path[256];
+ const size_t urilen = strlen(uri);
+ if (urilen >= sizeof(path)) {
+ cgi_redirect(302, "/");
+ return 0;
+ }
+ memcpy(path, uri, urilen + 1);
+ char *qmark = strchr(path, '?');
if (qmark != NULL)
*qmark = '\0';
- const char *path = path_copy;
const size_t pathlen = strlen(path);
/* Route the request. */
cgi_redirect(302, "/");
}
- free(path_copy);
return 0;
}