sbase

suckless unix tools
git clone git://git.suckless.org/sbase
Log | Files | Refs | README | LICENSE

commit 16159a61acfad96a8a9905ffd01e3e048a0f1820
parent 3300d5d47a054bd2615db0f99e1478808ec88032
Author: sin <sin@2f30.org>
Date:   Sat,  2 Jan 2016 10:32:44 +0000

ed: Use snprintf() for constructing the scratch filename

Diffstat:
Med.c | 12++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/ed.c b/ed.c @@ -328,17 +328,17 @@ clearbuf() static void setscratch() { - int k; + int r, k; char *dir; clearbuf(); clearundo(); if ((dir = getenv("TMPDIR")) == NULL) - dir = "/tmp/"; - if (strlcpy(tmpname, dir, sizeof(tmpname)) >= sizeof(tmpname)) - error("scratch file name too long"); - if (strlcat(tmpname, "ed.XXXXXX", sizeof(tmpname)) >= sizeof(tmpname)) - error("scratch file name too long"); + dir = "/tmp"; + r = snprintf(tmpname, sizeof(tmpname), "%s/%s", + dir, "ed.XXXXXX"); + if (r < 0 || (size_t)r >= sizeof(tmpname)) + error("scratch filename too long"); if ((scratch = mkstemp(tmpname)) < 0) error("failed to create scratch file"); if ((k = makeline("", NULL)))