[PATCH v7 03/14] ASoC: Intel: catpt: Add IPC message handlers

Andy Shevchenko andriy.shevchenko at linux.intel.com
Tue Sep 22 13:29:10 CEST 2020


On Tue, Sep 22, 2020 at 11:04:31AM +0000, Rojewski, Cezary wrote:
> On 2020-09-22 11:04 AM, Andy Shevchenko wrote:
> > On Mon, Sep 21, 2020 at 08:48:12PM +0000, Rojewski, Cezary wrote:
> >> On 2020-09-21 8:41 PM, Andy Shevchenko wrote:
> 
> ...
> 
> >> While this should never happen (means user is somehow not making use of
> >> officially released firmware binary), coredumps are useful only if you
> >> have access to debug tools. In cases you'd mentioned, invalid hash would
> >> have been dumped to coredump and crash reader simply wouldn't have been
> >> able to navigate to actual build for it. The rest of the coredump is still
> >> vital though.
> >>
> >> memcpy() could be gated behind an 'if' for safety if needed:
> >>
> >> 	info = cdev->ipc.config.fw_info;
> >> 	eof = info + FW_INFO_SIZE_MAX;
> >> 	/* navigate to fifth info segment (fw hash) */
> >> 	for (i = 0; i < 4 && info < eof; i++, info++)
> >> 		/* info segments are separated by space each */
> >> 		if ((info = strnchr(info, eof - info, ' ')) == NULL)
> >> 			break;
> > 
> >> 	if (i == 4 && info < eof)
> >> 		memcpy(pos, info, min(eof - info, CATPT_DUMP_HASH_SIZE));
> > 
> > And here basically enough check is info against NULL, right?
> > Just try to look at different possibilities how to make code simpler and neater.
> > 
> >> Didn't compile this, some typecheck fixes might be in order and so on.
> > 
> 
> What you meant is:
> 	if (i == 4 && !info) // instead of 'info < eof'
> 
> right?

Simply if (!info)...

> If 4th space is last char in this string then info would end up being
> non-NULL and equal to 'eof' and thus memcpy() would get invoked with
> size=eof-info=0.

...which is not a problem.

> catpt_coredump() is here to gather debug info for Intel folks to analyze
> in case of critical error. In ideal world, it should not be required at
> all as when we get here, there are bigger problems on our head.
> Above solution is simpler than what is prevent in v7 while also
> maintaining good readability - variable names - plus comments which you
> suggested.

Thanks!

-- 
With Best Regards,
Andy Shevchenko




More information about the Alsa-devel mailing list