summaryrefslogtreecommitdiffstats
path: root/rc.c
diff options
context:
space:
mode:
Diffstat (limited to 'rc.c')
-rw-r--r--rc.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/rc.c b/rc.c
index cc6af29..4a13455 100644
--- a/rc.c
+++ b/rc.c
@@ -1,9 +1,9 @@
/*
- * $Id: rc.c,v 1.49 2011/10/15 00:56:44 tom Exp $
+ * $Id: rc.c,v 1.51 2012/11/30 21:32:39 tom Exp $
*
* rc.c -- routines for processing the configuration file
*
- * Copyright 2000-2010,2011 Thomas E. Dickey
+ * Copyright 2000-2011,2012 Thomas E. Dickey
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License, version 2.1
@@ -214,6 +214,7 @@ str_to_attr(char *str, int *fg, int *bg, int *hl)
int i = 0, get_fg = 1;
unsigned j;
char tempstr[MAX_LEN + 1], *part;
+ size_t have;
if (str[0] != '(' || lastch(str) != ')') {
if ((i = find_color(str)) >= 0) {
@@ -226,8 +227,14 @@ str_to_attr(char *str, int *fg, int *bg, int *hl)
}
/* remove the parenthesis */
- strcpy(tempstr, str + 1);
- lastch(tempstr) = '\0';
+ have = strlen(str);
+ if (have > MAX_LEN) {
+ have = MAX_LEN - 1;
+ } else {
+ have -= 2;
+ }
+ memcpy(tempstr, str + 1, have);
+ tempstr[have] = '\0';
/* get foreground and background */
OpenPOWER on IntegriCloud