|
From: | zhanghailiang |
Subject: | Re: [Qemu-devel] [PATCH v4 06/10] slirp/misc: check return value of malloc() |
Date: | Fri, 8 Aug 2014 18:44:43 +0800 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 |
On 2014/8/8 17:43, Alex Bennée wrote:
zhanghailiang writes:Signed-off-by: zhanghailiang<address@hidden> --- slirp/misc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/slirp/misc.c b/slirp/misc.c index b8eb74c..9b457ad 100644 --- a/slirp/misc.c +++ b/slirp/misc.c @@ -55,6 +55,10 @@ int add_exec(struct ex_list **ex_ptr, int do_pty, char *exec, tmp_ptr = *ex_ptr; *ex_ptr = (struct ex_list *)malloc(sizeof(struct ex_list)); + if (*ex_ptr == NULL) { + fprintf(stderr, "Error: malloc failed\n"); + return -1; + }Your indenting has gone a bit weird there.
Hmm, this file has some places that use tab key as indent.Here i used spaces as indent, otherwise the patch can not pass the check of '/scripts/checkpatch.pl'.
What's your opinion? Use tab as what it does? Thanks!
(*ex_ptr)->ex_fport = port; (*ex_ptr)->ex_addr = addr; (*ex_ptr)->ex_pty = do_pty; @@ -236,8 +240,9 @@ strdup(str) char *bptr; bptr = (char *)malloc(strlen(str)+1); - strcpy(bptr, str); - + if (bptr) { + strcpy(bptr, str); + } return bptr; } #endifAgain use of g_malloc would remove the need for this. HACKING section 3 says:
OK, Thanks!
3. Low level memory management Use of the malloc/free/realloc/calloc/valloc/memalign/posix_memalign APIs is not allowed in the QEMU codebase. Instead of these routines, use the GLib memory allocation routines g_malloc/g_malloc0/g_new/ g_new0/g_realloc/g_free or QEMU's qemu_memalign/qemu_blockalign/qemu_vfree APIs. Please note that g_malloc will exit on allocation failure, so there is no need to test for failure (as you would have to with malloc). Calling g_malloc with a zero size is valid and will return NULL.
[Prev in Thread] | Current Thread | [Next in Thread] |