_local_initshells does not currently reset cp to the beginning of the line buffer
for every iteration that it calls fgets(3), leading to writing past the end of
line with fairly long /etc/shells or excessively long line lengths. Correct this
by properly resetting cp.
Aside: I had considered instead doing fgets((cp = line), MAXPATHLEN + 1, ... and removing the
initialization of cp prior to the loop and not resetting it within the loop. However, I don't see
such expression usage in other parts that I've dealt with -- would this have been an
acceptable alternative?
PR: 192528