---
id: CVE-2022-50337
title: 'ocxl: fix pci device refcount leak when calling get_function_0()'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  ocxl: fix pci device refcount leak when calling get_function_0()

  get_function_0() calls pci_get_domain_bus_and_slot(), as comment
  says, it returns a pci device with re…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 87db7579ebd5ded337056eb765542eb2608f16e3 <
    a40e1b0a922a53fa925ea8b296e3de30a31ed028
  - >-
    Linux >= 87db7579ebd5ded337056eb765542eb2608f16e3 <
    37a13b274e4513c757e50c002ddcbf4bc89adbb2
  - >-
    Linux >= 87db7579ebd5ded337056eb765542eb2608f16e3 <
    9a1b3148975b71fdc194e62612478346bbe618cd
  - >-
    Linux >= 87db7579ebd5ded337056eb765542eb2608f16e3 <
    40ff4c2335a98f0ee96b099bfd70b8e6644f321f
  - >-
    Linux >= 87db7579ebd5ded337056eb765542eb2608f16e3 <
    27158c72678b39ee01cc01de1aba6b51c71abe2f
  - Linux 5.9
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-05T20:10:19.633760Z'
published: '2025-09-15'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T20:10:36.146Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2022-50337'
references:
  - url: 'https://git.kernel.org/stable/c/a40e1b0a922a53fa925ea8b296e3de30a31ed028'
  - url: 'https://git.kernel.org/stable/c/37a13b274e4513c757e50c002ddcbf4bc89adbb2'
  - url: 'https://git.kernel.org/stable/c/9a1b3148975b71fdc194e62612478346bbe618cd'
  - url: 'https://git.kernel.org/stable/c/40ff4c2335a98f0ee96b099bfd70b8e6644f321f'
  - url: 'https://git.kernel.org/stable/c/27158c72678b39ee01cc01de1aba6b51c71abe2f'
tags:
  - cve.org
epss: 0.00159
epssPercentile: 0.05082
ingestedAt: '2026-11-05T22:38:31.728Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

ocxl: fix pci device refcount leak when calling get_function_0()

get_function_0() calls pci_get_domain_bus_and_slot(), as comment
says, it returns a pci device with refcount increment, so after
using it, pci_dev_put() needs be called.

Get the device reference when get_function_0() is not called, so
pci_dev_put() can be called in the error path and callers
unconditionally. And add comment above get_dvsec_vendor0() to tell
callers to call pci_dev_put().

## Affected

- `Linux >= 87db7579ebd5ded337056eb765542eb2608f16e3 < a40e1b0a922a53fa925ea8b296e3de30a31ed028`
- `Linux >= 87db7579ebd5ded337056eb765542eb2608f16e3 < 37a13b274e4513c757e50c002ddcbf4bc89adbb2`
- `Linux >= 87db7579ebd5ded337056eb765542eb2608f16e3 < 9a1b3148975b71fdc194e62612478346bbe618cd`
- `Linux >= 87db7579ebd5ded337056eb765542eb2608f16e3 < 40ff4c2335a98f0ee96b099bfd70b8e6644f321f`
- `Linux >= 87db7579ebd5ded337056eb765542eb2608f16e3 < 27158c72678b39ee01cc01de1aba6b51c71abe2f`
- `Linux 5.9`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
