From: Linus Torvalds <torvalds@linux-foundation.org> Date: Thu, 24 Jul 2008 14:13:42 -0700 (PDT)Actually in the old code this precondition didn't hold, which explains how it is. The old code looked like: if (newlen >= ksize(ct->ext)) { new = kmalloc(newlen, gfp); if (!new) return NULL; ... ct->ext = new; } ct->ext->offset[id] = newoff; ct->ext->len = newlen; memset((void *)ct->ext + newoff, 0, newlen - newoff); return (void *)ct->ext + newoff; and in that context 'new' is only assigned in the "newlen >=" guarded code block. Anyways, it does seem that we should indeed only update the new larger length only after we've initialized the contents. Note that we could make krealloc() and friends clear out the trailing bits of the new buffer, and therefore the caller wouldn't even need to be mindful of such things. I don't know if that's desirable in general, probably it isn't. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 002/196] Chinese: rephrase English introduction in HOWTO |
| Christoph Lameter | [00/41] Large Blocksize Support V7 (adds memmap support) |
| Chuck Ebbert | Re: Linux 2.6.21 |
git: | |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Hugh Dickins | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| David Miller | [GIT]: Networking |
