rust-lang / rust-lang/rust-clippy

Suggest `ptr::null()` over `ptr::null_mut()` if the receiver takes `*const`

Open
#5,237 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-lint E-medium L-complexity
Dominant language
Rust
Stars
13.5k
Forks
2.2k
Avg merge
2d 10h
Merged PRs (30d)
32

Description

I'm often passing null pointers for optional arguments when doing C FFI. Some functions take *mut as argument, others *const. Since mutable pointers coerce to const pointers, I can call a function taking a *const argument by accidentally passing in ptr::null_mut(), where the more correct usage would be to pass ptr::null().

Example:

use std::ptr;

fn foo(arg: *const u32) {}

fn main() {
    foo(ptr::null_mut());
}

Here I would like Clippy to suggest calling foo with ptr::null() instead.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Rust example with Clippy, then locate the lint implementation and its tests for pointer arguments. Done means Clippy detects ptr::null_mut() passed to a *const parameter and suggests ptr::null(), while leaving *mut parameters unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.