Change 28533 by [EMAIL PROTECTED] on 2006/07/10 17:23:02
Convert some low hanging fruit to my_strlcpy/my_strlcat.
Affected files ...
... //depot/perl/doio.c#339 edit
... //depot/perl/mg.c#446 edit
... //depot/perl/pp_sys.c#514 edit
... //depot/perl/toke.c#689 edit
... //depot/perl/util.c#573 edit
Differences ...
==== //depot/perl/doio.c#339 (text) ====
Index: perl/doio.c
--- perl/doio.c#338~28528~ 2006-07-10 06:55:39.000000000 -0700
+++ perl/doio.c 2006-07-10 10:23:02.000000000 -0700
@@ -1443,10 +1443,9 @@
char *cmd;
/* Make a copy so we can change it */
- const int cmdlen = strlen(incmd);
- Newx(cmd, cmdlen+1, char);
- strncpy(cmd, incmd, cmdlen);
- cmd[cmdlen] = 0;
+ const Size_t cmdlen = strlen(incmd) + 1;
+ Newx(cmd, cmdlen, char);
+ my_strlcpy(cmd, incmd, cmdlen);
while (*cmd && isSPACE(*cmd))
cmd++;
==== //depot/perl/mg.c#446 (text) ====
Index: perl/mg.c
--- perl/mg.c#445~28469~ 2006-07-03 02:39:42.000000000 -0700
+++ perl/mg.c 2006-07-10 10:23:02.000000000 -0700
@@ -1073,8 +1073,7 @@
Stat_t sbuf;
int i = 0, j = 0;
- strncpy(eltbuf, s, 255);
- eltbuf[255] = 0;
+ my_strlcpy(eltbuf, s, sizeof(eltbuf));
elt = eltbuf;
do { /* DCL$PATH may be a search list */
while (1) { /* as may dev portion of any element */
==== //depot/perl/pp_sys.c#514 (text) ====
Index: perl/pp_sys.c
--- perl/pp_sys.c#513~28473~ 2006-07-03 11:09:01.000000000 -0700
+++ perl/pp_sys.c 2006-07-10 10:23:02.000000000 -0700
@@ -3580,10 +3580,11 @@
char *s;
PerlIO *myfp;
int anum = 1;
+ Size_t size = strlen(cmd) + (strlen(filename) * 2) + 10;
- Newx(cmdline, strlen(cmd) + (strlen(filename) * 2) + 10, char);
- strcpy(cmdline, cmd);
- strcat(cmdline, " ");
+ Newx(cmdline, size, char);
+ my_strlcpy(cmdline, cmd, size);
+ my_strlcat(cmdline, " ", size);
for (s = cmdline + strlen(cmdline); *filename; ) {
*s++ = '\\';
*s++ = *filename++;
==== //depot/perl/toke.c#689 (text) ====
Index: perl/toke.c
--- perl/toke.c#688~28476~ 2006-07-04 02:42:12.000000000 -0700
+++ perl/toke.c 2006-07-10 10:23:02.000000000 -0700
@@ -499,7 +499,7 @@
dVAR;
HV * const hinthv = GvHV(PL_hintgv);
char he_name[32] = "feature_";
- (void) strncpy(&he_name[8], name, 24);
+ (void) my_strlcpy(&he_name[8], name, 24);
return (hinthv && hv_exists(hinthv, he_name, 8 + namelen));
}
==== //depot/perl/util.c#573 (text) ====
Index: perl/util.c
--- perl/util.c#572~28528~ 2006-07-10 06:55:39.000000000 -0700
+++ perl/util.c 2006-07-10 10:23:02.000000000 -0700
@@ -3022,7 +3022,7 @@
if ((strlen(tmpbuf) + strlen(scriptname)
+ MAX_EXT_LEN) >= sizeof tmpbuf)
continue; /* don't search dir with too-long name */
- strcat(tmpbuf, scriptname);
+ my_strlcat(tmpbuf, scriptname, sizeof(tmpbuf));
#else /* !VMS */
#ifdef DOSISH
@@ -3054,11 +3054,10 @@
len = strlen(scriptname);
if (len+MAX_EXT_LEN+1 >= sizeof(tmpbuf))
break;
- /* FIXME? Convert to memcpy */
- cur = strcpy(tmpbuf, scriptname);
+ cur = my_strlcpy(tmpbuf, scriptname, sizeof(tmpbuf));
}
} while (extidx >= 0 && ext[extidx] /* try an extension? */
- && strcpy(tmpbuf+len, ext[extidx++]));
+ && my_strlcpy(tmpbuf+len, ext[extidx++], sizeof(tmpbuf) -
len));
#endif
}
#endif
@@ -3135,7 +3134,7 @@
#ifdef SEARCH_EXTS
} while ( retval < 0 /* not there */
&& extidx>=0 && ext[extidx] /* try an extension? */
- && strcpy(tmpbuf+len, ext[extidx++])
+ && my_strlcpy(tmpbuf+len, ext[extidx++], sizeof(tmpbuf) -
len)
);
#endif
if (retval < 0)
End of Patch.