From de2e1d3b697cf0f13b06a840290b42798ed477b5 Mon Sep 17 00:00:00 2001 From: reinelt Date: Mon, 30 Jan 2006 12:53:08 +0000 Subject: [lcd4linux @ 2006-01-30 12:53:07 by reinelt] replaced strncpy with strcpy where possible git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@631 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- cfg.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'cfg.c') diff --git a/cfg.c b/cfg.c index 66dbd98..f0e483a 100644 --- a/cfg.c +++ b/cfg.c @@ -1,4 +1,4 @@ -/* $Id: cfg.c,v 1.47 2005/05/08 04:32:43 reinelt Exp $^ +/* $Id: cfg.c,v 1.48 2006/01/30 12:53:07 reinelt Exp $^ * * config file stuff * @@ -23,6 +23,9 @@ * * * $Log: cfg.c,v $ + * Revision 1.48 2006/01/30 12:53:07 reinelt + * replaced strncpy with strcpy where possible + * * Revision 1.47 2005/05/08 04:32:43 reinelt * CodingStyle added and applied * @@ -334,6 +337,7 @@ static char *strip(char *s, const int strip_comments) while (isblank(*s)) s++; + for (p = s; *p; p++) { if (*p == '"') do @@ -348,8 +352,10 @@ static char *strip(char *s, const int strip_comments) break; } } + for (p--; p > s && isblank(*p); p--) *p = '\0'; + return s; } @@ -452,9 +458,9 @@ static void cfg_add(const char *section, const char *key, const char *val, const int cfg_cmd(const char *arg) { char *key, *val; - char buffer[256]; + char *buffer; - strncpy(buffer, arg, sizeof(buffer)); + buffer = strdup (arg); key = strip(buffer, 0); for (val = key; *val; val++) { if (*val == '=') { @@ -462,11 +468,19 @@ int cfg_cmd(const char *arg) break; } } - if (*key == '\0' || *val == '\0') + if (*key == '\0' || *val == '\0') { + free (buffer); return -1; - if (!validchars(key)) + } + + if (!validchars(key)) { + free (buffer); return -1; + } + cfg_add("", key, val, 1); + + free (buffer); return 0; } -- cgit v1.2.3