Project

General

Profile

Actions

Bug #6668

open

Possible vnode leak in pc_rename()

Added by Marcel Telka over 5 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
kernel
Start date:
2016-02-21
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:

Description

There is missing VN_RELE(svp) call (in a case svp is non-NULL) at line 623:

593    pcp = pc_getnode(VFSTOPCFS(vp->v_vfsp),
594        slot.sl_blkno, slot.sl_offset, slot.sl_ep);
595
596    brelse(slot.sl_bp);
597
598    if (pcp)
599        svp = PCTOV(pcp);
600
601    /*
602     * is the rename invalid, i.e. rename("a", "a/a")
603     */
604    if (pcp == tdp) {
605        if (svp)
606            VN_RELE(svp);
607        return (EINVAL);
608    }
609
610    /*
611     * Are we just changing the case of an existing name?
612     */
613    if ((dp->pc_scluster == tdp->pc_scluster) &&
614        (u8_strcmp(snm, tnm, 0, U8_STRCMP_CI_UPPER, U8_UNICODE_LATEST,
615        &error) == 0)) {
616        filecasechange = 1;
617    }
618
619    /*
620     * u8_strcmp detected an illegal character
621     */
622    if (error)
623        return (EINVAL);

No data to display

Actions

Also available in: Atom PDF