diff options
author | Sijmen J. Mulder <ik@sjmulder.nl> | 2018-06-15 11:12:13 +0200 |
---|---|---|
committer | Sijmen J. Mulder <ik@sjmulder.nl> | 2018-06-15 11:12:13 +0200 |
commit | 0e48991594d3d3c382ca2995bb30d7236e6a9ce1 (patch) | |
tree | 707f278e6b5c02cb42121273462ae8ec78d4eb7d /src/cmds_command.c | |
parent | ceacb0adb7f50dd5834c730dbbfcbf9d57e6e869 (diff) |
Use more portable strncpy instead of strlcpy
Diffstat (limited to 'src/cmds_command.c')
-rw-r--r-- | src/cmds_command.c | 11 |
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); } |