Re: [PATCH] 2.6.6 memory allocation checks in SliceBlock()

From: Randy.Dunlap
Date: Sun Jun 06 2004 - 13:12:03 EST


On Sun, 06 Jun 2004 19:23:12 +0300 Yury Umanets wrote:

| Adds memory allocation checks in SliceBlock()
|
| ./linux-2.6.6-modified/drivers/char/drm/sis_ds.c | 4 ++++
| 1 files changed, 4 insertions(+)
|
| Signed-off-by: Yury Umanets <torque@xxxxxxxxxxx>
|
| diff -rupN ./linux-2.6.6/drivers/char/drm/sis_ds.c
| ./linux-2.6.6-modified/drivers/char/drm/sis_ds.c
| --- ./linux-2.6.6/drivers/char/drm/sis_ds.c Mon May 10 05:33:19 2004
| +++ ./linux-2.6.6-modified/drivers/char/drm/sis_ds.c Wed Jun 2 14:19:22
| 2004
| @@ -231,6 +231,8 @@ static TMemBlock* SliceBlock(TMemBlock *
| if (startofs > p->ofs) {
| newblock = (TMemBlock*) DRM(calloc)(1, sizeof(TMemBlock),
| DRM_MEM_DRIVER);
| + if (!newblock)
| + return NULL;
| newblock->ofs = startofs;
| newblock->size = p->size - (startofs - p->ofs);
| newblock->free = 1;
| @@ -244,6 +246,8 @@ static TMemBlock* SliceBlock(TMemBlock *
| if (size < p->size) {
| newblock = (TMemBlock*) DRM(calloc)(1, sizeof(TMemBlock),
| DRM_MEM_DRIVER);
| + if (!newblock)
| + return NULL;
| newblock->ofs = startofs + size;
| newblock->size = p->size - size;
| newblock->free = 1;
|
| --

These look like the right thing to do, but one caller of
SliceBlock() has no error handling:

mmAllocMem():

p = SliceBlock(p,startofs,size,0,mask+1);
p->heap = heap;
return p;

However, callers of mmAllocMem() do have failure handling.

--
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/