Replace getcpy() and strdup() with mh_xstrdup()
[mmh] / sbr / readconfig.c
index cbeb481..2fe2d7d 100644 (file)
@@ -52,20 +52,19 @@ 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);
+                       np->n_name = mh_xstrdup(name);
                        if (state == FLDPLUS) {
-                               cp = getcpy(field);
+                               cp = mh_xstrdup(field);
                                while (state == FLDPLUS) {
                                        state = m_getfld(state, name, field,
                                                        sizeof(field), ib);
                                        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);