X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/83a5f35a2724ee60bfd8c5679b98da7008272254..ad3b39d3b8443e142a6bfee34d527c99cd5f280d:/cache.c?ds=sidebyside diff --git a/cache.c b/cache.c index 1ff1251..8df7c26 100644 --- a/cache.c +++ b/cache.c @@ -10,6 +10,22 @@ const int NOLOCK = -1; +char *cache_safe_filename(const char *unsafe) +{ + static char buf[PATH_MAX]; + char *s = buf; + char c; + + while(unsafe && (c = *unsafe++) != 0) { + if (c == '/' || c == ' ' || c == '&' || c == '|' || + c == '>' || c == '<' || c == '.') + c = '_'; + *s++ = c; + } + *s = '\0'; + return buf; +} + int cache_exist(struct cacheitem *item) { if (stat(item->name, &item->st)) {