The product dereferences a pointer it expected to be valid but is NULL.
Check returns before dereference; use option types where the language offers them.