X-Git-Url: http://git.samba.org/samba.git/?p=sfrench%2Fcifs-2.6.git;a=blobdiff_plain;f=drivers%2Fcrypto%2Ftalitos.c;h=97f4af1d8a64415ff32de856381781997223284d;hp=0f2483e221ad87ce02a356c0cefa01a86fcab944;hb=b7c8e55db7141dcbb9d5305a3260fa0ed62a1bcc;hpb=4015d9a865e3bcc42d88bedc8ce1551000bab664 diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c index 0f2483e221ad..97f4af1d8a64 100644 --- a/drivers/crypto/talitos.c +++ b/drivers/crypto/talitos.c @@ -1183,10 +1183,14 @@ static size_t sg_copy_end_to_buffer(struct scatterlist *sgl, unsigned int nents, /* Copy part of this segment */ ignore = skip - offset; len = miter.length - ignore; + if (boffset + len > buflen) + len = buflen - boffset; memcpy(buf + boffset, miter.addr + ignore, len); } else { - /* Copy all of this segment */ + /* Copy all of this segment (up to buflen) */ len = miter.length; + if (boffset + len > buflen) + len = buflen - boffset; memcpy(buf + boffset, miter.addr, len); } boffset += len;