patch-2.4.7 linux/drivers/char/drm/r128_bufs.c

Next file: linux/drivers/char/drm/radeon_bufs.c
Previous file: linux/drivers/char/drm/mga_bufs.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.6/linux/drivers/char/drm/r128_bufs.c linux/drivers/char/drm/r128_bufs.c
@@ -103,6 +103,16 @@
 		return -ENOMEM; /* May only call once for each order */
 	}
 
+	/* Might be a poor limit, but take that up with XFree86 
+	   if its a problem */
+	   
+	if(count < 0 || count > 4096)
+	{
+		up(&dev->struct_sem);
+		atomic_dec(&dev->buf_alloc);
+		return -EINVAL;
+	}
+		
 	entry->buflist = drm_alloc(count * sizeof(*entry->buflist),
 				   DRM_MEM_BUFS);
 	if (!entry->buflist) {

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)