summaryrefslogtreecommitdiffstats
path: root/src/cmds_command.c
diff options
context:
space:
mode:
authorSijmen J. Mulder <ik@sjmulder.nl>2018-06-15 11:12:13 +0200
committerSijmen J. Mulder <ik@sjmulder.nl>2018-06-15 11:12:13 +0200
commit0e48991594d3d3c382ca2995bb30d7236e6a9ce1 (patch)
tree707f278e6b5c02cb42121273462ae8ec78d4eb7d /src/cmds_command.c
parentceacb0adb7f50dd5834c730dbbfcbf9d57e6e869 (diff)
Use more portable strncpy instead of strlcpy
Diffstat (limited to 'src/cmds_command.c')
-rw-r--r--src/cmds_command.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/cmds_command.c b/src/cmds_command.c
index ad45a82..fcae9b8 100644
--- a/src/cmds_command.c
+++ b/src/cmds_command.c
@@ -412,6 +412,7 @@ void do_commandmode(struct block * sb) {
int name_ok = 0;
int force_rewrite = 0;
#ifndef NO_WORDEXP
+ size_t len;
wordexp_t p;
#endif
@@ -433,11 +434,12 @@ void do_commandmode(struct block * sb) {
wordexp(name, &p, 0);
if ( p.we_wordc < 1 ) {
sc_error("Failed expanding filepath");
- } else if ( strlcpy(name, p.we_wordv[0], sizeof(name))
- >= sizeof(name) ) {
+
+ } else if ( (len = strlen(p.we_wordv[0])) >= sizeof(name) ) {
sc_error("File path too long");
wordfree(&p);
} else {
+ strncpy(name, p.we_wordv[0], len+1);
name_ok = 1;
wordfree(&p);
}
@@ -858,6 +860,7 @@ void do_commandmode(struct block * sb) {
char name [BUFFERSIZE];
int name_ok = 0;
#ifndef NO_WORDEXP
+ size_t len;
wordexp_t p;
#endif
@@ -870,11 +873,11 @@ void do_commandmode(struct block * sb) {
wordexp(name, &p, 0);
if ( p.we_wordc < 1 ) {
sc_error("Failed to expand filename");
- } else if ( strlcpy(name, p.we_wordv[0], sizeof(name))
- >= sizeof(name) ) {
+ } else if ( (len = strlen(p.we_wordv[0])) >= sizeof(name) ) {
sc_error("File path too long");
wordfree(&p);
} else {
+ strncpy(name, p.we_wordv[0], len+1);
name_ok = 1;
wordfree(&p);
}