Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.24 /mm/util.c

Filename:/mm/util.c
Lines Added:6
Lines Deleted:4
Also changed in: (Previous) 2.6.24-rc8  2.6.24-rc7  2.6.24-rc6  2.6.24-rc5  2.6.24-rc4  2.6.24-rc3 
(Following) 2.6.26-git15  2.6.26-git16  2.6.26-git17  2.6.26-git18  2.6.27-rc1  2.6.27-rc2 

Location
[  2.6.24
  [  mm
     o  util.c

Patch

diff --git a/mm/util.c b/mm/util.c
index bf340d8..8f18683 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -81,20 +81,22 @@ EXPORT_SYMBOL(kmemdup);
 void *krealloc(const void *p, size_t new_size, gfp_t flags)
 {
    void *ret;
-   size_t ks;
+   size_t ks = 0;
 
    if (unlikely(!new_size)) {
       kfree(p);
       return ZERO_SIZE_PTR;
    }
 
-   ks = ksize(p);
+   if (p)
+      ks = ksize(p);
+
    if (ks >= new_size)
       return (void *)p;
 
    ret = kmalloc_track_caller(new_size, flags);
-   if (ret) {
-      memcpy(ret, p, min(new_size, ks));
+   if (ret && p) {
+      memcpy(ret, p, ks);
       kfree(p);
    }
    return ret;


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.