missing check after kmalloc in drivers/video/sbus.c and not only

From: Vladimir V. Klenov (maple@ixcelerator.com)
Date: Fri Jan 19 2001 - 11:59:41 EST


Hello,

kernel is 2.4.1-pre8

missing check after kmalloc in drivers/video/sbus.c, possible memory leak
in case of sbusfb_init_fb() failure, unnesesary compare (memset to area
before).
best explanation is a patch, look:

--- drivers/video/sbusfb.c.orig Fri Jan 19 19:14:22 2001
+++ drivers/video/sbusfb.c Fri Jan 19 19:56:20 2001
@@ -1070,8 +1070,14 @@
         fb->cursor.hwsize.fbx = 32;
         fb->cursor.hwsize.fby = 32;
         
- if (depth > 1 && !fb->color_map)
+ if (depth > 1) {
                 fb->color_map = kmalloc(256 * 3, GFP_ATOMIC);
+ if(!fb->color_map) {
+ prom_printf("sbusfb: could not allocate memory for color map\n");
+ kfree(fb);
+ return;
+ }
+ }
                 
         switch(fbtype) {
 #ifdef CONFIG_FB_CREATOR
@@ -1110,6 +1116,7 @@
         }
         
         if (!p) {
+ kfree(fb->color_map);
                 kfree(fb);
                 return;
         }
@@ -1147,6 +1154,7 @@
         sbusfb_set_var(var, -1, &fb->info);
 
         if (register_framebuffer(&fb->info) < 0) {
+ kfree(fb->color_map);
                 kfree(fb);
                 return;
         }

                                        SY, Vladimir

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



This archive was generated by hypermail 2b29 : Tue Jan 23 2001 - 21:00:20 EST