Re: [PATCH RESEND 04/10] crypto: hisilicon/zip - replace 'sprintf' with 'scnprintf'

From: Herbert Xu
Date: Fri Sep 04 2020 - 03:40:25 EST


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,
--
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt