|
@@ -53,8 +53,12 @@ static ssize_t do_coredump_read(int num, struct spu_context *ctx, void *buffer,
|
|
*/
|
|
*/
|
|
static int spufs_dump_write(struct file *file, const void *addr, int nr, loff_t *foffset)
|
|
static int spufs_dump_write(struct file *file, const void *addr, int nr, loff_t *foffset)
|
|
{
|
|
{
|
|
|
|
+ unsigned long limit = current->signal->rlim[RLIMIT_CORE].rlim_cur;
|
|
ssize_t written;
|
|
ssize_t written;
|
|
|
|
|
|
|
|
+ if (*foffset + nr > limit)
|
|
|
|
+ return -EIO;
|
|
|
|
+
|
|
written = file->f_op->write(file, addr, nr, &file->f_pos);
|
|
written = file->f_op->write(file, addr, nr, &file->f_pos);
|
|
*foffset += written;
|
|
*foffset += written;
|
|
|
|
|