Don't post-increment pointers inside a loop conditional.
While I'm here: - Let lm_add() call strdup() on its own behalf. - Use a temporary pointer when parsing constraints; only set the constraint pointer on a totally successful match. PR: bin/52783 Submitted by: David P. Reese Jr. <daver@gomerbud.com> Approved by: re (rwatson)
This commit is contained in:
parent
84d55c7fad
commit
1340fc1015
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=115400
@ -31,7 +31,7 @@ struct lmp {
|
||||
TAILQ_ENTRY(lmp) lmp_link;
|
||||
};
|
||||
|
||||
static void lm_add (char *, char *, char *);
|
||||
static void lm_add (const char *, const char *, const char *);
|
||||
static void lm_free (struct lm_list *);
|
||||
static char * lml_find (struct lm_list *, const char *);
|
||||
static struct lm_list * lmp_find (const char *);
|
||||
@ -45,7 +45,7 @@ lm_init (void)
|
||||
{
|
||||
FILE *fp;
|
||||
char *cp;
|
||||
char *f, *t, *p;
|
||||
char *f, *t, *p, *c;
|
||||
char prog[MAXPATHLEN];
|
||||
char line[MAXPATHLEN + 2];
|
||||
|
||||
@ -56,7 +56,7 @@ lm_init (void)
|
||||
|
||||
p = NULL;
|
||||
while ((cp = fgets(line, MAXPATHLEN + 1, fp)) != NULL) {
|
||||
t = f = NULL;
|
||||
t = f = c = NULL;
|
||||
|
||||
/* Skip over leading space */
|
||||
while (isspace(*cp)) cp++;
|
||||
@ -75,7 +75,7 @@ lm_init (void)
|
||||
if (iseol(*cp) || *cp == ']')
|
||||
continue;
|
||||
|
||||
p = cp++;
|
||||
c = cp++;
|
||||
/* Skip to end of word */
|
||||
while (!isspace(*cp) && !iseol(*cp) && *cp != ']')
|
||||
cp++;
|
||||
@ -93,10 +93,10 @@ lm_init (void)
|
||||
* There should be nothing except whitespace or comment
|
||||
from this point to the end of the line.
|
||||
*/
|
||||
while(isspace(*cp++));
|
||||
while(isspace(*cp)) *cp++;
|
||||
if (!iseol(*cp)) continue;
|
||||
|
||||
strcpy(prog, p);
|
||||
strcpy(prog, c);
|
||||
p = prog;
|
||||
continue;
|
||||
}
|
||||
@ -122,7 +122,7 @@ lm_init (void)
|
||||
if (!iseol(*cp)) continue;
|
||||
|
||||
*cp = '\0';
|
||||
lm_add(p, xstrdup(f), xstrdup(t));
|
||||
lm_add(p, f, t);
|
||||
}
|
||||
fclose(fp);
|
||||
return;
|
||||
@ -159,7 +159,7 @@ lm_fini (void)
|
||||
}
|
||||
|
||||
static void
|
||||
lm_add (char *p, char *f, char *t)
|
||||
lm_add (const char *p, const char *f, const char *t)
|
||||
{
|
||||
struct lm_list *lml;
|
||||
struct lm *lm;
|
||||
@ -171,8 +171,8 @@ lm_add (char *p, char *f, char *t)
|
||||
lml = lmp_init(xstrdup(p));
|
||||
|
||||
lm = xmalloc(sizeof(struct lm));
|
||||
lm->f = f;
|
||||
lm->t = t;
|
||||
lm->f = xstrdup(f);
|
||||
lm->t = xstrdup(t);
|
||||
TAILQ_INSERT_HEAD(lml, lm, lm_link);
|
||||
}
|
||||
|
||||
@ -189,7 +189,7 @@ lm_find (const char *p, const char *f)
|
||||
* Add a global mapping if we have
|
||||
* a successful constrained match.
|
||||
*/
|
||||
lm_add(NULL, xstrdup(f), xstrdup(t));
|
||||
lm_add(NULL, f, t);
|
||||
return (t);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user