On Sat, Aug 04, 2012 at 01:15:55PM +0400, Alexander Shiyan wrote: > A string allocated by asprintf is not freed, so change it to a sprintf > with the preallocated buffer. > > Signed-off-by: Alexander Shiyan <shc_work@xxxxxxx> > --- > drivers/mfd/mc13xxx.c | 12 ++++++------ > 1 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/mfd/mc13xxx.c b/drivers/mfd/mc13xxx.c > index 8e3c0b0..2373254 100644 > --- a/drivers/mfd/mc13xxx.c > +++ b/drivers/mfd/mc13xxx.c > @@ -252,7 +252,7 @@ static struct mc13892_rev mc13892_revisions[] = { > static int mc13xxx_query_revision(struct mc13xxx *mc13xxx) > { > unsigned int rev_id; > - char *chipname, *revstr; > + char *chipname, revstr[5]; > int rev, i; > > mc13xxx_reg_read(mc13xxx, MC13XXX_REG_IDENTIFICATION, &rev_id); > @@ -265,9 +265,9 @@ static int mc13xxx_query_revision(struct mc13xxx *mc13xxx) > /* Ver 0.2 is actually 3.2a. Report as 3.2 */ > if (rev == 0x02) { > rev = 0x32; > - revstr = "3.2a"; > + strcpy(&revstr[0], "3.2a"); > } else > - revstr = asprintf("%d.%d", rev / 0x10, rev % 10); > + sprintf(&revstr[0], "%d.%d", rev / 0x10, rev % 10); > break; > case 7: > chipname = "MC13892"; > @@ -279,12 +279,12 @@ static int mc13xxx_query_revision(struct mc13xxx *mc13xxx) > return -EINVAL; > > rev = mc13892_revisions[i].rev; > - revstr = mc13892_revisions[i].revstr; > + strcpy(&revstr[0], mc13892_revisions[i].revstr); > > if (rev == MC13892_REVISION_2_0) { > if ((rev_id >> 9) & 0x3) { > rev = MC13892_REVISION_2_0a; > - revstr = "2.0a"; > + strcpy(&revstr[0], "2.0a"); strcpy(revstr, "2.0a") should do the same, right? (also for the other places) Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox