--- kernel/cpuset.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) Index: linux-2.6/kernel/cpuset.c =================================================================== --- linux-2.6.orig/kernel/cpuset.c 2007-06-01 11:09:39.000000000 -0700 +++ linux-2.6/kernel/cpuset.c 2007-06-01 11:11:59.000000000 -0700 @@ -1723,7 +1723,7 @@ static int cpuset_tasks_open(struct inod { struct cpuset *cs = __d_cs(file->f_path.dentry->d_parent); struct ctr_struct *ctr; - pid_t *pidarray; + pid_t *pidarray = NULL; int npids; char c; @@ -1741,9 +1741,11 @@ static int cpuset_tasks_open(struct inod * show up until sometime later on. */ npids = atomic_read(&cs->count); - pidarray = kmalloc(npids * sizeof(pid_t), GFP_KERNEL); - if (!pidarray) - goto err1; + if (npids) + pidarray = kmalloc(npids * sizeof(pid_t), GFP_KERNEL); + if (!pidarray) + goto err1; + } npids = pid_array_load(pidarray, npids, cs); sort(pidarray, npids, sizeof(pid_t), cmppid, NULL);