Rasmus, I do not see a need for your first patch proposal. Our code works fine in our environment. But I will pickup your second part to remove the explicit setting of the 0-termination. Thanks! Regards, Ursula On Sat, 2015-12-05 at 22:32 +0100, Rasmus Villemoes wrote: > AFAICT, char is unsigned on s390. Relying on that is a little > subtle. The problem here is that if char happens to be signed and > e.g. card->info.mcl_level[2] contains the value -16, the formatted > output will be "fffffff0", thus overflowing card->info.mcl_level > (which has size 5). To help future readers, simply do an explicit mask > so that the value passed to sprintf is in 0-255. If char is indeed > unsigned, gcc should be able to elide the masking. > > In any case, the subsequent 0-termination is redundant, since sprintf > has done that. > > Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> > --- > drivers/s390/net/qeth_core_main.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c > index 31ac53fa5cee..84bc4b862fbb 100644 > --- a/drivers/s390/net/qeth_core_main.c > +++ b/drivers/s390/net/qeth_core_main.c > @@ -2682,10 +2682,8 @@ void qeth_print_status_message(struct qeth_card *card) > * */ > if (!card->info.mcl_level[0]) { > sprintf(card->info.mcl_level, "%02x%02x", > - card->info.mcl_level[2], > - card->info.mcl_level[3]); > - > - card->info.mcl_level[QETH_MCL_LENGTH] = 0; > + card->info.mcl_level[2] & 0xff, > + card->info.mcl_level[3] & 0xff); > break; > } > /* fallthrough */ -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html