14b1df39fb
and sprintf -> snprintf.
57 lines
2.5 KiB
Plaintext
57 lines
2.5 KiB
Plaintext
--- args.c.orig Wed Nov 26 10:14:22 1997
|
|
+++ args.c Mon Dec 13 19:32:26 1999
|
|
@@ -45,6 +45,7 @@
|
|
int consumed;
|
|
int currarg;
|
|
int opterrors;
|
|
+ size_t len;
|
|
|
|
#define OPTARG() \
|
|
{ consumed = 1; if(*++optstr == '\0') optstr = argv[++currarg]; }
|
|
@@ -146,18 +147,17 @@
|
|
break;
|
|
case 'C': /* select character definitions */
|
|
consumed = 1;
|
|
+ len = (strlen(libdir) + strlen(optstr) + 2);
|
|
if (*++optstr) { /* did we get a encoding name ? */
|
|
- if ((charvec_file = (char *) malloc(strlen(libdir) +
|
|
- strlen(optstr) +
|
|
- 2)) == NULL) {
|
|
+ if ((charvec_file = (char *) malloc(len)) == NULL) {
|
|
perror(optstr);
|
|
fprintf(stderr,
|
|
"ignoring character encoding definition\n");
|
|
}
|
|
else {
|
|
- (void) strcpy(charvec_file, libdir);
|
|
- (void) strcat(charvec_file, "/");
|
|
- (void) strcat(charvec_file, optstr);
|
|
+ (void) strlcpy(charvec_file, libdir, len);
|
|
+ (void) strlcat(charvec_file, "/", len);
|
|
+ (void) strlcat(charvec_file, optstr, len);
|
|
opt_encoding = 1;
|
|
}
|
|
}
|
|
@@ -341,10 +341,10 @@
|
|
case 'P': /* Printer */
|
|
consumed = 1;
|
|
doprint = 1;
|
|
- if (*++optstr)
|
|
+ if (*++optstr) {
|
|
if (!strcmp(optstr, "-"))
|
|
doprint = 0; /* kill MPAGE envvar que setting*/
|
|
- else {
|
|
+ } else {
|
|
printque = optstr;
|
|
}
|
|
break;
|
|
@@ -429,7 +429,7 @@
|
|
libdir = env;
|
|
|
|
if ((env = getenv("MPAGE")) != NULL) {
|
|
- strcpy(copy, env);
|
|
+ (void)strlcpy(copy, env, sizeof(copy));
|
|
argv = slice(copy, &argc);
|
|
if (do_args(argc, argv, 1) < 0) {
|
|
fprintf(stderr, "%s: error in environment \"%s\"\n", MPAGE, env);
|