On Wed, Jul 26, 2023 at 12:08:26AM +0000, Joan Bruguera Micó wrote: > Hmmm, indeed linux-next crashes with a null pointer dereference when > calling `ida_free(..., -1)`. > > It appears to me that 69cb69ea5542 ("ida: Remove assertions that an ID was > allocated") didn't intend to make `ida_free(..., -1)` invalid; after all, > it was authored & introduced immediately after fc82bbf4dede ("ida: don't > use BUG_ON() for debugging") whose commit message calls for making it > legal, with Matthew's support. > And the referenced Bluetooth HCI code that also calls `ida_free(..., -1)` > is still there, as far as I can tell ([1]). > > Rather, probably the `((int)id < 0)` was accidentally dropped, or the idea > was that it would be handled by the `not_found:` label in `ida_free`, but > for that to work you'd need to change the `!test_bit(bit, bitmap->bitmap)` > condition to `!bitmap || !test_bit(bit, bitmap->bitmap)` since otherwise > `bitmap->bitmap` is a null pointer dereference. I've been in two minds about that patch ever since I wrote it. I've dropped it from my tree for now. But, er, you have pointed out a bug which is that we don't handle !bitmap properly. That should be fixed.