Skip to content

Fix nil pointer panic on PUT /users/:id for a non-existent user - #444

Open
wakqasahmed wants to merge 1 commit into
labstack:masterfrom
wakqasahmed:fix/cookbook-crud-nil-pointer
Open

wakqasahmed wants to merge 1 commit into
labstack:masterfrom
wakqasahmed:fix/cookbook-crud-nil-pointer

Conversation

@wakqasahmed

Copy link
Copy Markdown
Contributor

`users` is `map[int]*user{}`, so looking up a missing id returns a nil `*user`. `updateUser` did `users[id].Name = u.Name` directly, which panics with a nil pointer dereference on any PUT to an id that doesn't exist — easy to hit just by typing a wrong id in the cookbook's example requests.

Changed it to check for the user first (`existingUser, ok := users[id]`) and return a 404 if it's missing, matching how `getUser` and `deleteUser` already handle the same case elsewhere in this file.

Added tests for both the 404 path and the normal update path (create a user, update it, confirm the response reflects the new name).

@wakqasahmed
wakqasahmed force-pushed the fix/cookbook-crud-nil-pointer branch from 4d20a4c to 47c505a Compare September 13, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant