On Wed, Aug 28, 2013 at 5:54 AM, Maxime Villard <m...@m00nbsd.net> wrote: > + /* Ensure interp is a valid, NUL-terminated string */ > + for (n = 0; n < pp->p_filesz; n++) { > + if (interp[n] == '\0') > + break; > + } > + if (n != pp->p_filesz - 1) { > + error = ENOEXEC; > goto bad; > }
A more concise test would be: if (strnlen(interp, pp->p_filesz) != pp->p_filesz - 1) { error = ENOEXEC; goto bad; }