Simplify redundant malloc'ing in sed -e.

When encountering an -e argument, sed currently mallocs a string to COPY
the optarg -- with '\n' appended. The appendage does not seem necessary --
indeed, the same call to add_compunit processing the sole command (given
without -e) passes the *argv verbatim: without making a copy, and without
appending newline.

This matches what is done in other BSDs.

Submitted by:	Mikhail T.
PR:		195929
MFC after:	2 weeks
This commit is contained in:
Pedro F. Giffuni 2016-05-09 18:53:46 +00:00
parent f9cf87a0e0
commit d74b9e1311

View File

@ -125,7 +125,6 @@ int
main(int argc, char *argv[])
{
int c, fflag;
char *temp_arg;
(void) setlocale(LC_ALL, "");
@ -147,11 +146,7 @@ main(int argc, char *argv[])
break;
case 'e':
eflag = 1;
if ((temp_arg = malloc(strlen(optarg) + 2)) == NULL)
err(1, "malloc");
strcpy(temp_arg, optarg);
strcat(temp_arg, "\n");
add_compunit(CU_STRING, temp_arg);
add_compunit(CU_STRING, optarg);
break;
case 'f':
fflag = 1;