--- a/dav/scfg.c Sat Mar 23 10:04:18 2019 +0100 +++ b/dav/scfg.c Tue Mar 26 17:30:34 2019 +0100 @@ -300,7 +300,14 @@ } SplitConfig *sc = calloc(1, sizeof(SplitConfig)); - sc->pattern = pattern ? strdup(pattern) : NULL; + if(pattern) { + regex_t *regex = malloc(sizeof(regex_t)); + if (regcomp(regex, pattern, REG_EXTENDED|REG_NOSUB)) { + fprintf(stderr, "Invalid regular expression (%s)\n", pattern); + } else { + sc->pattern = regex; + } + } sc->minsize = minsz; sc->blocksize = (size_t)sz; return sc; @@ -522,6 +529,7 @@ dir->lockpush = lockpush; dir->lock_timeout = lock_timeout; dir->metadata = metadata; + dir->splitconfig = splitconfig; if(metadata & FINFO_MODE == FINFO_MODE) { dir->db_settings = DB_STORE_MODE; }