X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=drivers%2Fs390%2Fchar%2Fsclp.c;h=4377e93a43d7f97b7087ed5164967743337fc8a5;hb=0fbba4871c42b297b0d6a6a6ff73e934cb91423e;hp=1fd8f2193ed853b143cdd25d1792224c91f4f1b9;hpb=a14ad05f47b55ea84136eb4da43ea96fa469326a;p=cascardo%2Flinux.git diff --git a/drivers/s390/char/sclp.c b/drivers/s390/char/sclp.c index 1fd8f2193ed8..4377e93a43d7 100644 --- a/drivers/s390/char/sclp.c +++ b/drivers/s390/char/sclp.c @@ -280,8 +280,11 @@ sclp_dispatch_evbufs(struct sccb_header *sccb) rc = 0; for (offset = sizeof(struct sccb_header); offset < sccb->length; offset += evbuf->length) { - /* Search for event handler */ evbuf = (struct evbuf_header *) ((addr_t) sccb + offset); + /* Check for malformed hardware response */ + if (evbuf->length == 0) + break; + /* Search for event handler */ reg = NULL; list_for_each(l, &sclp_reg_list) { reg = list_entry(l, struct sclp_register, list);