X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=drivers%2Fs390%2Fchar%2Fcon3270.c;h=d9c6ae973c8748e7221b08233598ea4b1b68f281;hp=8de9f29e57fc2744de88cf7456a5e34e7b48a0dc;hb=d03cb14e630811b638f4f42868a621808bb41e7d;hpb=6f2ea7553a89f3ab58478754230348b70e61990d;ds=sidebyside diff --git a/drivers/s390/char/con3270.c b/drivers/s390/char/con3270.c index 8de9f29e57fc..d9c6ae973c87 100644 --- a/drivers/s390/char/con3270.c +++ b/drivers/s390/char/con3270.c @@ -121,7 +121,12 @@ con3270_create_status(struct con3270 *cp) static void con3270_update_string(struct con3270 *cp, struct string *s, int nr) { - if (s->len >= cp->view.cols - 5) + if (s->len < 4) { + /* This indicates a bug, but printing a warning would + * cause a deadlock. */ + return; + } + if (s->string[s->len - 4] != TO_RA) return; raw3270_buffer_address(cp->view.dev, s->string + s->len - 3, cp->view.cols * (nr + 1)); @@ -452,7 +457,7 @@ con3270_cline_end(struct con3270 *cp) cp->cline->len + 4 : cp->view.cols; s = con3270_alloc_string(cp, size); memcpy(s->string, cp->cline->string, cp->cline->len); - if (s->len < cp->view.cols - 5) { + if (cp->cline->len < cp->view.cols - 5) { s->string[s->len - 4] = TO_RA; s->string[s->len - 1] = 0; } else {