* Create a struct group from a line. */
| 643 | * Create a struct group from a line. |
| 644 | */ |
| 645 | struct group * |
| 646 | gr_scan(const char *line) |
| 647 | { |
| 648 | struct group gr; |
| 649 | char *line_copy; |
| 650 | struct group *new_gr; |
| 651 | |
| 652 | if ((line_copy = strdup(line)) == NULL) |
| 653 | return (NULL); |
| 654 | if (!__gr_scan(line_copy, &gr)) { |
| 655 | free(line_copy); |
| 656 | return (NULL); |
| 657 | } |
| 658 | new_gr = gr_dup(&gr); |
| 659 | free(line_copy); |
| 660 | if (gr.gr_mem != NULL) |
| 661 | free(gr.gr_mem); |
| 662 | |
| 663 | return (new_gr); |
| 664 | } |