The RK3066/RK30SDK Android 4.2 audio codec has a bug!

在文件kernel/sound/soc/soc-core.c中,函数soc_bind_dai_link引入了一个新定义的宏CODEC_NAME_CMP,这个新玩意导致了后面的strcpy(p_codec_name,codec->name);可能出现NULL pointer,原因是p_codec_name可能会被后面的strsep(&p_codec_name,".")修改。改正的方法很简单,在strcpy之前重复初始化一次就OK了:

#ifdef CODEC_NAME_CMP
        p_codec_name = tmp_codec_name;
        p_dai_codec_name = tmp_dai_codec_name;
        strcpy(p_codec_name,codec->name);
        strcpy(p_dai_codec_name,dai_link->codec_name);        
#endif

原文地址:https://www.cnblogs.com/swnuwangyun/p/3172864.html