|
Lines 1289-1297
Link Here
|
| 1289 |
data_len = WVAL(buf, 1); |
1289 |
data_len = WVAL(buf, 1); |
| 1290 |
/* we can NOT simply trust the data_len given by the server ... */ |
1290 |
/* we can NOT simply trust the data_len given by the server ... */ |
| 1291 |
if (data_len > server->packet_size - (buf+3 - server->packet)) { |
1291 |
if (data_len > count || |
|
|
1292 |
data_len > server->packet_size - (buf+3 - server->packet)) { |
| 1292 |
printk(KERN_ERR "smb_proc_read: invalid data length!! " |
1293 |
printk(KERN_ERR "smb_proc_read: invalid data length!! " |
| 1293 |
"%d > %d - (%p - %p)\n", |
1294 |
"%d > %d || %d > %d - (%p - %p)\n", |
|
|
1295 |
data_len, count, |
| 1294 |
data_len, server->packet_size, buf+3, server->packet); |
1296 |
data_len, server->packet_size, buf+3, server->packet); |
| 1295 |
result = -EIO; |
1297 |
result = -EIO; |
| 1296 |
goto out; |
1298 |
goto out; |
|
Lines 1378-1386
Link Here
|
| 1378 |
buf = smb_base(server->packet) + data_off; |
1380 |
buf = smb_base(server->packet) + data_off; |
| 1379 |
/* we can NOT simply trust the info given by the server ... */ |
1381 |
/* we can NOT simply trust the info given by the server ... */ |
| 1380 |
if (data_len > server->packet_size - (buf - server->packet)) { |
1382 |
if (data_len > count || |
|
|
1383 |
data_len > server->packet_size - (buf - server->packet)) { |
| 1381 |
printk(KERN_ERR "smb_proc_read: invalid data length!! " |
1384 |
printk(KERN_ERR "smb_proc_read: invalid data length!! " |
| 1382 |
"%d > %d - (%p - %p)\n", |
1385 |
"%d > %d || %d > %d - (%p - %p)\n", |
|
|
1386 |
data_len, count, |
| 1383 |
data_len, server->packet_size, buf, server->packet); |
1387 |
data_len, server->packet_size, buf, server->packet); |
| 1384 |
result = -EIO; |
1388 |
result = -EIO; |
| 1385 |
goto out; |
1389 |
goto out; |