Replace free() with mh_free0()
[mmh] / sbr / readconfig.c
index 171ecf8..ec97e1e 100644 (file)
@@ -36,11 +36,11 @@ static struct node **opp = NULL;
 void
 readconfig(struct node **npp, FILE *ib, char *file, int ctx)
 {
-       register int state;
-       register char *cp;
+       int state;
+       char *cp;
        char name[NAMESZ], field[BUFSIZ];
-       register struct node *np;
-       register struct procstr *ps;
+       struct node *np;
+       struct procstr *ps;
 
        if (npp == NULL && (npp = opp) == NULL) {
                admonish(NULL, "bug: readconfig called but pump not primed");
@@ -52,8 +52,7 @@ readconfig(struct node **npp, FILE *ib, char *file, int ctx)
                                ib)) {
                case FLD:
                case FLDPLUS:
-               case FLDEOF:
-                       np = (struct node *) mh_xmalloc(sizeof(*np));
+                       np = mh_xcalloc(1, sizeof(*np));
                        *npp = np;
                        *(npp = &np->n_next) = NULL;
                        np->n_name = getcpy(name);
@@ -65,7 +64,7 @@ readconfig(struct node **npp, FILE *ib, char *file, int ctx)
                                        cp = add(field, cp);
                                }
                                np->n_field = trimcpy(cp);
-                               free(cp);
+                               mh_free0(&cp);
                        } else {
                                np->n_field = trimcpy(field);
                        }
@@ -81,12 +80,9 @@ readconfig(struct node **npp, FILE *ib, char *file, int ctx)
                                        *ps->procnaddr = np->n_field;
                                        break;
                                }
-                       if (state == FLDEOF)
-                               break;
                        continue;
 
                case BODY:
-               case BODYEOF:
                        adios(EX_CONFIG, NULL, "no blank lines are permitted in %s",
                                        file);