Messages in this thread | | | Subject | Re: [PATCH RESEND 04/10] crypto: hisilicon/zip - replace 'sprintf' with 'scnprintf' | From | "shenyang (M)" <> | Date | Fri, 4 Sep 2020 16:43:14 +0800 |
| |
On 2020/9/4 15:40, Herbert Xu wrote: > On Wed, Aug 26, 2020 at 04:56:40PM +0800, shenyang (M) wrote: >> >>>> @@ -514,13 +514,16 @@ static int hisi_zip_core_debug_init(struct hisi_qm *qm) >>>> struct debugfs_regset32 *regset; >>>> struct dentry *tmp_d; >>>> char buf[HZIP_BUF_SIZE]; >>>> - int i; >>>> + int i, ret; >>>> >>>> for (i = 0; i < HZIP_CORE_NUM; i++) { >>>> if (i < HZIP_COMP_CORE_NUM) >>>> - sprintf(buf, "comp_core%d", i); >>>> + ret = scnprintf(buf, HZIP_BUF_SIZE, "comp_core%d", i); >>>> else >>>> - sprintf(buf, "decomp_core%d", i - HZIP_COMP_CORE_NUM); >>>> + ret = scnprintf(buf, HZIP_BUF_SIZE, "decomp_core%d", >>>> + i - HZIP_COMP_CORE_NUM); >>>> + if (!ret) >>>> + return -ENOMEM; >>> >>> and that is just so wrong - did you even try to test >>> the 'buffer too small' code path? >> >> Do you means the check is unnecessary? > > No he's saying that your patch does the wrong thing when the string > is truncated. > > Also ENOMEM is a strange error for that case. > > Cheers, >
Here 'HZIP_BUF_SIZE' is 22, so the buf is enough for the string.
The check for the return is really unnecessary, I will remove it in the next version.
Thanks, Yang
| |