diff options
author | Amadeusz Sławiński (amade) <amade@asmblr.net> | 2011-01-06 22:03:41 +0100 |
---|---|---|
committer | Amadeusz Sławiński <amade@asmblr.net> | 2014-07-24 11:50:44 +0200 |
commit | 19b54fae5ff5d666d214bf95a4bea7142af5070c (patch) | |
tree | 8bbfdab64d5530ae235994e31d63e33a851fc185 | |
parent | d5138644bdfb4221925f8de5d55e8125816eaf0d (diff) | |
download | screen-19b54fae5ff5d666d214bf95a4bea7142af5070c.tar.gz |
replace some of strcpy with strncpy
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
-rw-r--r-- | src/attacher.c | 6 | ||||
-rw-r--r-- | src/display.c | 6 | ||||
-rw-r--r-- | src/fileio.c | 4 | ||||
-rw-r--r-- | src/help.c | 8 | ||||
-rw-r--r-- | src/mark.c | 2 | ||||
-rw-r--r-- | src/misc.c | 6 | ||||
-rw-r--r-- | src/process.c | 4 | ||||
-rw-r--r-- | src/pty.c | 10 | ||||
-rw-r--r-- | src/screen.c | 8 | ||||
-rw-r--r-- | src/screen.h | 2 |
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; @@ -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; @@ -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; @@ -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); } @@ -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. |