diff for duplicates of <1485217979.2825.20.camel@sandisk.com> diff --git a/a/1.txt b/N1/1.txt index 9d8bb66..d6ce0d3 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,27 +1,35 @@ On Mon, 2017-01-23 at 16:29 +0100, Christoph Hellwig wrote: -> @@ -251,11 +251,13 @@ static int __scsi_execute(struct scsi_device *sdev, const unsigned char *cmd, -> * is invalid. Prevent the garbage from being misinterpreted -> * and prevent security leaks by zeroing out the excess data. -> */ -> - if (unlikely(req->resid_len > 0 && req->resid_len <= bufflen)) -> - memset(buffer + (bufflen - req->resid_len), 0, req->resid_len); -> + if (unlikely(rq->resid_len > 0 && rq->resid_len <= bufflen)) -> + memset(buffer + (bufflen - rq->resid_len), 0, rq->resid_len); -> -> if (resid) -> - *resid = req->resid_len; -> + *resid = rq->resid_len; -> + if (rq->sense_len) -> + memcpy(sense, rq->sense, SCSI_SENSE_BUFFERSIZE); -> ret = req->errors; -> out: -> blk_put_request(req); +> @@ -251,11 +251,13 @@ static int __scsi_execute(struct scsi_device *sdev,= + const unsigned char *cmd, +> =A0=A0=A0=A0=A0=A0=A0=A0 * is invalid.=A0 Prevent the garbage from being = +misinterpreted +> =A0=A0=A0=A0=A0=A0=A0=A0 * and prevent security leaks by zeroing out the = +excess data. +> =A0=A0=A0=A0=A0=A0=A0=A0 */ +> -=A0=A0=A0=A0=A0=A0=A0if (unlikely(req->resid_len > 0 && req->resid_len <= +=3D bufflen)) +> -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0memset(buffer + (bufflen - = +req->resid_len), 0, req->resid_len); +> +=A0=A0=A0=A0=A0=A0=A0if (unlikely(rq->resid_len > 0 && rq->resid_len <= +=3D bufflen)) +> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0memset(buffer + (bufflen - = +rq->resid_len), 0, rq->resid_len); +> =A0 +> =A0=A0=A0=A0=A0=A0=A0=A0if (resid) +> -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0*resid =3D req->resid_len; +> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0*resid =3D rq->resid_len; +> +=A0=A0=A0=A0=A0=A0=A0if (rq->sense_len) +> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0memcpy(sense, rq->sense, SC= +SI_SENSE_BUFFERSIZE); +> =A0=A0=A0=A0=A0=A0=A0=A0ret =3D req->errors; +> =A0 out: +> =A0=A0=A0=A0=A0=A0=A0=A0blk_put_request(req); Hello Christoph, Do we perhaps need a check before the above memcpy() call whether or not -sense == NULL? +sense =3D=3D NULL? Thanks, -Bart. +Bart.= diff --git a/a/content_digest b/N1/content_digest index b85bbd2..bad800e 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -12,31 +12,39 @@ "\00:1\0" "b\0" "On Mon, 2017-01-23 at 16:29 +0100, Christoph Hellwig wrote:\n" - "> @@ -251,11 +251,13 @@ static int __scsi_execute(struct scsi_device *sdev, const unsigned char *cmd,\n" - "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 * is invalid.\302\240 Prevent the garbage from being misinterpreted\n" - "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 * and prevent security leaks by zeroing out the excess data.\n" - "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 */\n" - "> -\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (unlikely(req->resid_len > 0 && req->resid_len <= bufflen))\n" - "> -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240memset(buffer + (bufflen - req->resid_len), 0, req->resid_len);\n" - "> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (unlikely(rq->resid_len > 0 && rq->resid_len <= bufflen))\n" - "> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240memset(buffer + (bufflen - rq->resid_len), 0, rq->resid_len);\n" - "> \302\240\n" - "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (resid)\n" - "> -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240*resid = req->resid_len;\n" - "> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240*resid = rq->resid_len;\n" - "> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (rq->sense_len)\n" - "> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240memcpy(sense, rq->sense, SCSI_SENSE_BUFFERSIZE);\n" - "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = req->errors;\n" - "> \302\240 out:\n" - "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240blk_put_request(req);\n" + "> @@ -251,11 +251,13 @@ static int __scsi_execute(struct scsi_device *sdev,=\n" + " const unsigned char *cmd,\n" + "> =A0=A0=A0=A0=A0=A0=A0=A0 * is invalid.=A0 Prevent the garbage from being =\n" + "misinterpreted\n" + "> =A0=A0=A0=A0=A0=A0=A0=A0 * and prevent security leaks by zeroing out the =\n" + "excess data.\n" + "> =A0=A0=A0=A0=A0=A0=A0=A0 */\n" + "> -=A0=A0=A0=A0=A0=A0=A0if (unlikely(req->resid_len > 0 && req->resid_len <=\n" + "=3D bufflen))\n" + "> -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0memset(buffer + (bufflen - =\n" + "req->resid_len), 0, req->resid_len);\n" + "> +=A0=A0=A0=A0=A0=A0=A0if (unlikely(rq->resid_len > 0 && rq->resid_len <=\n" + "=3D bufflen))\n" + "> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0memset(buffer + (bufflen - =\n" + "rq->resid_len), 0, rq->resid_len);\n" + "> =A0\n" + "> =A0=A0=A0=A0=A0=A0=A0=A0if (resid)\n" + "> -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0*resid =3D req->resid_len;\n" + "> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0*resid =3D rq->resid_len;\n" + "> +=A0=A0=A0=A0=A0=A0=A0if (rq->sense_len)\n" + "> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0memcpy(sense, rq->sense, SC=\n" + "SI_SENSE_BUFFERSIZE);\n" + "> =A0=A0=A0=A0=A0=A0=A0=A0ret =3D req->errors;\n" + "> =A0 out:\n" + "> =A0=A0=A0=A0=A0=A0=A0=A0blk_put_request(req);\n" "\n" "Hello Christoph,\n" "\n" "Do we perhaps need a check before the above memcpy() call whether or not\n" - "sense == NULL?\n" + "sense =3D=3D NULL?\n" "\n" "Thanks,\n" "\n" - Bart. + Bart.= -4d40d7cfee746a60a3e32950d5fd49902bfd1862ef3abbdb264857b701a6b9a8 +06b61e9860dcf8f69c499fdfd21a692a40dc3a76ef12829fb8cec3f06d29b3e5
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.