Should `serial_number` be freed in case of success?