Dear Anatolij Gustschin, In message <1266924140-14457-1-git-send-email-ag...@denx.de> you wrote: > The length of configured MTDPARTS_DEFAULT string > could be greather than console printbuffer size. > Check the lenght of the string before printing > to prevent U-Boot crashes. > > Signed-off-by: Anatolij Gustschin <ag...@denx.de> > --- > common/cmd_mtdparts.c | 8 ++++++++ > 1 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/common/cmd_mtdparts.c b/common/cmd_mtdparts.c > index 230e96e..d4cb194 100644 > --- a/common/cmd_mtdparts.c > +++ b/common/cmd_mtdparts.c > @@ -1254,6 +1254,14 @@ static void list_partitions(void) > printf("\ndefaults:\n"); > printf("mtdids : %s\n", > mtdids_default ? mtdids_default : "none"); > + > + /* Check to prevent printbuffer overflows */ > + if (mtdparts_default && strlen(mtdparts_default) > CONFIG_SYS_PBSIZE) { > + puts("Warning: mtdparts too long," > + " please increase CONFIG_SYS_PBSIZE\n"); > + return; > + } > +
Instead of adding essentially dead code that does not really help the end user, it would be better to avoid the potential problems. As log as the console code has not been improved, it may make sense to avoid printf() when you don't really need it. I recommend to change this > printf("mtdparts: %s\n", > mtdparts_default ? mtdparts_default : "none"); into something like puts("mtdparts: "); puts(mtdparts_default ? mtdparts_default : "none"); Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de "Unix is simple, but it takes a genius to understand the simplicity." - Dennis Ritchie _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot