Remove troublesome chars from cachefile names

Add a funtion cache_safe_filename() which replaces possibly bad filename
characters with '_'.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
Lars Hjemli 2007-01-12 00:24:35 +01:00
parent 83a5f35a27
commit 2c2047ff67
3 changed files with 18 additions and 1 deletions

16
cache.c
View file

@ -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)) {