--- lib/libutil/gr_util.c.orig 2014-09-27 15:57:47.937525613 -0400 +++ lib/libutil/gr_util.c 2014-09-27 16:09:44.837056173 -0400 @@ -170,14 +170,21 @@ size_t len; int eof, readlen; - sgr = gr; + if (old_gr == NULL && gr == NULL) + return(-1); + + sgr = old_gr; + /* deleting a group */ if (gr == NULL) { line = NULL; - if (old_gr == NULL) + } else { + if ((line = gr_make(gr)) == NULL) return (-1); - sgr = old_gr; - } else if ((line = gr_make(gr)) == NULL) - return (-1); + } + + /* adding a group */ + if (sgr == NULL) + sgr = gr; eof = 0; len = 0;