summaryrefslogtreecommitdiffstats
path: root/src/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/file.c')
-rw-r--r--src/file.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/file.c b/src/file.c
index 93eff4c..5c7602a 100644
--- a/src/file.c
+++ b/src/file.c
@@ -191,6 +191,7 @@ int savefile() {
int force_rewrite = 0;
char name[BUFFERSIZE];
#ifndef NO_WORDEXP
+ size_t len;
wordexp_t p;
#endif
@@ -209,11 +210,13 @@ int savefile() {
if (p.we_wordc < 1) {
sc_error("Failed expanding filepath");
return -1;
- } else if (strlcpy(name, p.we_wordv[0], sizeof(name)) >= sizeof(name)) {
+ }
+ if ((len = strlen(p.we_wordv[0])) >= sizeof(name)) {
sc_error("File path too long");
wordfree(&p);
return -1;
}
+ strncpy(name, p.we_wordv[0], len+1);
wordfree(&p);
#endif