Commit 5f09c4c7 authored by Tilman Schmidt's avatar Tilman Schmidt Committed by Linus Torvalds

gigaset: gigaset_isowbuf_getbytes() may return signed unnoticed

ifd->offset is unsigned.  gigaset_isowbuf_getbytes() may return signed
unnoticed.  Revised version of patch originally submitted by Roel Kluin
<12o3l@tiscali.nl>.
Signed-off-by: default avatarTilman Schmidt <tilman@imap.cc>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 5002779d
...@@ -1050,10 +1050,9 @@ static int submit_iso_write_urb(struct isow_urbctx_t *ucx) ...@@ -1050,10 +1050,9 @@ static int submit_iso_write_urb(struct isow_urbctx_t *ucx)
} }
/* retrieve block of data to send */ /* retrieve block of data to send */
ifd->offset = gigaset_isowbuf_getbytes(ubc->isooutbuf, rc = gigaset_isowbuf_getbytes(ubc->isooutbuf, ifd->length);
ifd->length); if (rc < 0) {
if (ifd->offset < 0) { if (rc == -EBUSY) {
if (ifd->offset == -EBUSY) {
gig_dbg(DEBUG_ISO, gig_dbg(DEBUG_ISO,
"%s: buffer busy at frame %d", "%s: buffer busy at frame %d",
__func__, nframe); __func__, nframe);
...@@ -1062,11 +1061,12 @@ static int submit_iso_write_urb(struct isow_urbctx_t *ucx) ...@@ -1062,11 +1061,12 @@ static int submit_iso_write_urb(struct isow_urbctx_t *ucx)
} else { } else {
dev_err(ucx->bcs->cs->dev, dev_err(ucx->bcs->cs->dev,
"%s: buffer error %d at frame %d\n", "%s: buffer error %d at frame %d\n",
__func__, ifd->offset, nframe); __func__, rc, nframe);
return ifd->offset; return rc;
} }
break; break;
} }
ifd->offset = rc;
ucx->limit = ubc->isooutbuf->nextread; ucx->limit = ubc->isooutbuf->nextread;
ifd->status = 0; ifd->status = 0;
ifd->actual_length = 0; ifd->actual_length = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment