do i have memory leak?
/*
 * Return a pointer to the user with this name in
 * the list starting with head. Return NULL if no such user exists.
 *
 * NOTE: You'll likely need to cast a (const User *) to a (User *)
 * to satisfy the prototype without warnings.
 */
User *find_user(const char *name, const User *head) {
	// initialize the head of the linked list
	const User *curr = head;

	while (curr != NULL) {
		// if match is found, return the user
		if (strcmp(curr->name, name) == 0){
			return (User *)curr;
		}
		curr = curr->next;
	}
	// end of the list was reached without finding user
    return NULL;
}