summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmadeusz Sławiński (amade) <amade@asmblr.net>2011-01-06 22:03:41 +0100
committerAmadeusz Sławiński <amade@asmblr.net>2014-07-24 11:50:44 +0200
commit19b54fae5ff5d666d214bf95a4bea7142af5070c (patch)
tree8bbfdab64d5530ae235994e31d63e33a851fc185
parentd5138644bdfb4221925f8de5d55e8125816eaf0d (diff)
downloadscreen-19b54fae5ff5d666d214bf95a4bea7142af5070c.tar.gz
replace some of strcpy with strncpy
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
-rw-r--r--src/attacher.c6
-rw-r--r--src/display.c6
-rw-r--r--src/fileio.c4
-rw-r--r--src/help.c8
-rw-r--r--src/mark.c2
-rw-r--r--src/misc.c6
-rw-r--r--src/process.c4
-rw-r--r--src/pty.c10
-rw-r--r--src/screen.c8
-rw-r--r--src/screen.h2
10 files changed, 28 insertions, 28 deletions
diff --git a/src/attacher.c b/src/attacher.c
index d857314..127a9ce 100644
--- a/src/attacher.c
+++ b/src/attacher.c
@@ -966,7 +966,7 @@ SendCmdMessage(char *sty, char *match, char **av, int query)
len = strlen(*av) + 1;
if (p + len >= m.m.command.cmd + sizeof(m.m.command.cmd) - 1)
break;
- strcpy(p, *av);
+ strncpy(p, *av, MAXPATHLEN);
p += len;
}
*p = 0;
@@ -988,7 +988,7 @@ SendCmdMessage(char *sty, char *match, char **av, int query)
for (c = 'A'; c <= 'Z'; c++)
{
query[6] = c;
- strcpy(sp, query); /* XXX: strncpy? */
+ strncpy(sp, query, strlen(SockPath));
if ((r = MakeServerSocket()) >= 0)
break;
}
@@ -997,7 +997,7 @@ SendCmdMessage(char *sty, char *match, char **av, int query)
for (c = '0'; c <= '9'; c++)
{
query[6] = c;
- strcpy(sp, query);
+ strncpy(sp, query, strlen(SockPath));
if ((r = MakeServerSocket()) >= 0)
break;
}
diff --git a/src/display.c b/src/display.c
index fd2477c..fb6d723 100644
--- a/src/display.c
+++ b/src/display.c
@@ -1774,7 +1774,7 @@ MakeStatus(char *msg)
}
}
if (t - msg < D_status_buflen)
- strcpy(D_status_lastmsg, msg);
+ strncpy(D_status_lastmsg, msg, D_status_buflen);
D_status_len = t - msg;
D_status_lastx = D_x;
D_status_lasty = D_y;
@@ -3342,13 +3342,13 @@ RunBlanker(char **cmdv)
char *m;
int pid;
int slave = -1;
- char termname[30];
+ char termname[NAME_MAX + 1];
#ifndef TIOCSWINSZ
char libuf[20], cobuf[20];
#endif
char **np;
- strcpy(termname, "TERM=");
+ strncpy(termname, "TERM=", 6);
strncpy(termname + 5, D_termname, sizeof(termname) - 6);
termname[sizeof(termname) - 1] = 0;
KillBlanker();
diff --git a/src/fileio.c b/src/fileio.c
index e691fd2..4271a16 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -136,7 +136,7 @@ findrcfile(char *rcfile)
if (*rcfile != '/' && rcend && (rcend - rc_name) + strlen(rcfile) + 2 < sizeof(buf))
{
strncpy(buf, rc_name, rcend - rc_name + 1);
- strcpy(buf + (rcend - rc_name) + 1, rcfile);
+ strncpy(buf + (rcend - rc_name) + 1, rcfile, 256 - (rcend - rc_name));
if (access(buf, R_OK) == 0)
return SaveStr(buf);
}
@@ -403,7 +403,7 @@ WriteFile(struct acluser *user, char *fn, int dump)
if (i > (int)sizeof(fnbuf) - 9)
i = 0;
strncpy(fnbuf, SockPath, i);
- strcpy(fnbuf + i, ".termcap");
+ strncpy(fnbuf + i, ".termcap", 9);
fn = fnbuf;
}
break;
diff --git a/src/help.c b/src/help.c
index 0c91a39..4e4ff24 100644
--- a/src/help.c
+++ b/src/help.c
@@ -298,8 +298,8 @@ helppage()
}
else
{
- strcpy(Esc_buf, "??");
- strcpy(buf, "??");
+ strncpy(Esc_buf, "??", 5);
+ strncpy(buf, "??", 256);
}
for (; crow < flayer->l_height - 3; crow++)
@@ -425,9 +425,9 @@ add_key_to_buf(char *buf, int key)
{
buf += strlen(buf);
if (key < 0)
- strcpy(buf, "unset");
+ strncpy(buf, "unset", 6);
else if (key == ' ')
- strcpy(buf, "sp");
+ strncpy(buf, "sp", 3);
else if (key >= 256)
{
key = key - 256 + T_CAPS;
diff --git a/src/mark.c b/src/mark.c
index 0f7a8a0..b5b62ca 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -358,7 +358,7 @@ rem(int x1, int y1, int x2, int y2, int redisplay, char *pt, int yend)
{
if (pt)
{
- strcpy(pt, "\033(B");
+ strncpy(pt, "\033(B", 4);
pt += 3;
}
l += 3;
diff --git a/src/misc.c b/src/misc.c
index 179ffd0..a19133f 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -58,7 +58,7 @@ SaveStr(register const char *str)
if ((cp = malloc(strlen(str) + 1)) == NULL)
Panic(0, "%s", strnomem);
else
- strcpy(cp, str);
+ strncpy(cp, str, strlen(str) + 1);
return cp;
}
@@ -561,9 +561,9 @@ xsetenv(char *var, char *value)
Msg(0, strnomem);
return;
}
- strcpy(buf, var);
+ strncpy(buf, var, strlen(var) + 1);
buf[l] = '=';
- strcpy(buf + l + 1, value);
+ strncpy(buf + l + 1, value, strlen(value) + 1);
putenv(buf);
# ifdef NEEDPUTENV
/*
diff --git a/src/process.c b/src/process.c
index 1e839e7..5a64980 100644
--- a/src/process.c
+++ b/src/process.c
@@ -3657,7 +3657,7 @@ DoAction(struct action *act, int key)
free(s);
break;
}
- strcpy(screenterm, s);
+ strncpy(screenterm, s, 20);
free(s);
debug1("screenterm set to %s\n", screenterm);
MakeTermcap((display == 0));
@@ -5172,7 +5172,7 @@ DoAction(struct action *act, int key)
{
n = i == 0 ? focusminwidth : focusminheight;
if (n == -1)
- strcpy(b[i], "max");
+ strncpy(b[i], "max", 20);
else
sprintf(b[i], "%d", n);
}
diff --git a/src/pty.c b/src/pty.c
index a826051..3455463 100644
--- a/src/pty.c
+++ b/src/pty.c
@@ -222,7 +222,7 @@ OpenPTY(char **ttyn)
register int f;
struct stat buf;
- strcpy(PtyName, "/dev/ptc");
+ strncpy(PtyName, "/dev/ptc", 32);
if ((f = open(PtyName, O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0)
return -1;
if (fstat(f, &buf) < 0)
@@ -252,7 +252,7 @@ OpenPTY(char **ttyn)
#endif
sigret_t (*sigcld)SIGPROTOARG;
- strcpy(PtyName, "/dev/ptmx");
+ strncpy(PtyName, "/dev/ptmx", 32);
#if defined(HAVE_GETPT) && (defined(linux) || defined(__GLIBC__))
if ((f = getpt()) == -1)
#else
@@ -290,7 +290,7 @@ OpenPTY(char **ttyn)
register int f;
/* a dumb looking loop replaced by mycrofts code: */
- strcpy (PtyName, "/dev/ptc");
+ strncpy (PtyName, "/dev/ptc", 32);
if ((f = open (PtyName, O_RDWR | O_NOCTTY)) < 0)
return -1;
strncpy(TtyName, ttyname(f), sizeof(TtyName));
@@ -336,8 +336,8 @@ OpenPTY(char **ttyn)
register int f;
debug("OpenPTY: Using BSD style ptys.\n");
- strcpy(PtyName, PtyProto);
- strcpy(TtyName, TtyProto);
+ strncpy(PtyName, PtyProto, 32);
+ strncpy(TtyName, TtyProto, 32);
for (p = PtyName; *p != 'X'; p++)
;
for (q = TtyName; *q != 'X'; q++)
diff --git a/src/screen.c b/src/screen.c
index d2dc4cb..45fac19 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -453,7 +453,7 @@ main(int argc, char **argv)
cjkwidth = 0;
nwin = nwin_undef;
nwin_options = nwin_undef;
- strcpy(screenterm, "screen");
+ strncpy(screenterm, "screen", 20);
logreopen_register(lf_secreopen);
@@ -616,7 +616,7 @@ main(int argc, char **argv)
if (--argc == 0)
exit_with_usage(myname, "Specify terminal-type with -T", NULL);
if (strlen(*++argv) < 20)
- strcpy(screenterm, *argv);
+ strncpy(screenterm, *argv, 20);
else
Panic(0, "-T: terminal name too long. (max. 20 char)");
nwin_options.term = screenterm;
@@ -2571,7 +2571,7 @@ MakeWinMsgEv(char *str, struct win *win, int esc, int padlen, struct event *ev,
int oldnumrend = winmsg_numrend;
*p = 0;
- strcpy(savebuf, winmsg_buf);
+ strncpy(savebuf, winmsg_buf, sizeof(winmsg_buf));
winmsg_numrend = -winmsg_numrend;
MakeWinMsgEv(*s == 'h' ? win->w_hstatus : runbacktick(bt, &oldtick, now.tv_sec), win, '\005', 0, (struct event *)0, rec + 1);
debug2("oldtick=%d tick=%d\n", oldtick, tick);
@@ -2579,7 +2579,7 @@ MakeWinMsgEv(char *str, struct win *win, int esc, int padlen, struct event *ev,
tick = oldtick;
if ((int)strlen(winmsg_buf) < l)
strcat(savebuf, winmsg_buf);
- strcpy(winmsg_buf, savebuf);
+ strncpy(winmsg_buf, savebuf, sizeof(winmsg_buf));
while (oldnumrend < winmsg_numrend)
winmsg_rendpos[oldnumrend++] += p - winmsg_buf;
if (*p)
diff --git a/src/screen.h b/src/screen.h
index 0755686..fe9e473 100644
--- a/src/screen.h
+++ b/src/screen.h
@@ -218,7 +218,7 @@ struct msg
{
char auser[MAXLOGINLEN + 1]; /* username */
int nargs;
- char cmd[MAXPATHLEN]; /* command */
+ char cmd[MAXPATHLEN + 1]; /* command */
int apid; /* pid of frontend */
char preselect[20];
char writeback[MAXPATHLEN]; /* The socket to write the result.