Hi Mateusz,
This looks like a behavioural change to me. Was that intended and a bug
fix (in which case, it should have been documented in the commit
message) or not? See below for the exact change.

On 6 Dec 2020, at 04:59, Mateusz Guzik <m...@freebsd.org> wrote:
> +static int
> +namei_getpath(struct nameidata *ndp)
> +{
> +     struct componentname *cnp;
> +     int error;
> +
> +     cnp = &ndp->ni_cnd;
> +
> +     /*
> +      * Get a buffer for the name to be translated, and copy the
> +      * name into the buffer.
> +      */
> +     cnp->cn_pnbuf = uma_zalloc(namei_zone, M_WAITOK);
> +     if (ndp->ni_segflg == UIO_SYSSPACE) {
> +             error = copystr(ndp->ni_dirp, cnp->cn_pnbuf, MAXPATHLEN,
> +                 &ndp->ni_pathlen);
> +     } else {
> +             error = copyinstr(ndp->ni_dirp, cnp->cn_pnbuf, MAXPATHLEN,
> +                 &ndp->ni_pathlen);
> +     }
> +
> +     if (__predict_false(error != 0)) {
> +             return (error);

This does not call namei_cleanup_cnp.

> @@ -531,31 +568,11 @@ namei(struct nameidata *ndp)
>       ndp->ni_lcf = 0;
>       ndp->ni_vp = NULL;
> 
> -     /*
> -      * Get a buffer for the name to be translated, and copy the
> -      * name into the buffer.
> -      */
> -     cnp->cn_pnbuf = uma_zalloc(namei_zone, M_WAITOK);
> -     if (ndp->ni_segflg == UIO_SYSSPACE)
> -             error = copystr(ndp->ni_dirp, cnp->cn_pnbuf, MAXPATHLEN,
> -                 &ndp->ni_pathlen);
> -     else
> -             error = copyinstr(ndp->ni_dirp, cnp->cn_pnbuf, MAXPATHLEN,
> -                 &ndp->ni_pathlen);
> -
> +     error = namei_getpath(ndp);
>       if (__predict_false(error != 0)) {
> -             namei_cleanup_cnp(cnp);

But it used to be called in that case here.

>               return (error);
>       }

Jess

_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to