Message ID | 1408348310-6628-1-git-send-email-zhang.zhanghailiang@huawei.com |
---|---|
State | New |
Headers | show |
18.08.2014 11:51, zhanghailiang пишет: > Here we don't check the return value of malloc() which may fail. > Use the g_malloc() instead, which will abort the program when > there is not enough memory. > > Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com> > Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > --- > slirp/misc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/slirp/misc.c b/slirp/misc.c > index b8eb74c..f7fe497 100644 > --- a/slirp/misc.c > +++ b/slirp/misc.c > @@ -54,7 +54,7 @@ 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)); > + *ex_ptr = (struct ex_list *)g_malloc(sizeof(struct ex_list)); There's a convinient macro in glib, g_new(typename, numelts). Also there's a less commonly used g_renew() which is like realloc, but it is not applicable here. > (*ex_ptr)->ex_fport = port; > (*ex_ptr)->ex_addr = addr; > (*ex_ptr)->ex_pty = do_pty; > @@ -235,7 +235,7 @@ strdup(str) > { > char *bptr; > > - bptr = (char *)malloc(strlen(str)+1); > + bptr = (char *)g_malloc(strlen(str)+1); > strcpy(bptr, str); > > return bptr; Oh. And this one should be removed completely. It is a reimplementation of strdup() for system which lacks it. This code should go, we don't build on such a system anyway and we always have g_strdup(). There's one more usage of strdup() in this file, btw. I'm sorry for being so picky, and you're already at v7, but heck.. We should be more active at reviewing patches :) Thanks, /mjt
On Mon, Aug 18, 2014 at 03:32:21PM +0400, Michael Tokarev wrote: > 18.08.2014 11:51, zhanghailiang пишет: > > Here we don't check the return value of malloc() which may fail. > > Use the g_malloc() instead, which will abort the program when > > there is not enough memory. > > > > Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com> > > Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > > --- > > slirp/misc.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/slirp/misc.c b/slirp/misc.c > > index b8eb74c..f7fe497 100644 > > --- a/slirp/misc.c > > +++ b/slirp/misc.c > > @@ -54,7 +54,7 @@ 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)); > > + *ex_ptr = (struct ex_list *)g_malloc(sizeof(struct ex_list)); > > There's a convinient macro in glib, g_new(typename, numelts). Also > there's a less commonly used g_renew() which is like realloc, but it > is not applicable here. > If you are going to respin anyway, I recommend dropping the superfluous (struct ex_list *) cast here as well. > > (*ex_ptr)->ex_fport = port; > > (*ex_ptr)->ex_addr = addr; > > (*ex_ptr)->ex_pty = do_pty; > > @@ -235,7 +235,7 @@ strdup(str) > > { > > char *bptr; > > > > - bptr = (char *)malloc(strlen(str)+1); > > + bptr = (char *)g_malloc(strlen(str)+1); > > strcpy(bptr, str); > > > > return bptr; > > Oh. And this one should be removed completely. It is a reimplementation > of strdup() for system which lacks it. This code should go, we don't build > on such a system anyway and we always have g_strdup(). There's one more > usage of strdup() in this file, btw. > > I'm sorry for being so picky, and you're already at v7, but heck.. We should > be more active at reviewing patches :) > > Thanks, > > /mjt >
On 2014/8/18 19:32, Michael Tokarev wrote: > 18.08.2014 11:51, zhanghailiang пишет: >> Here we don't check the return value of malloc() which may fail. >> Use the g_malloc() instead, which will abort the program when >> there is not enough memory. >> >> Signed-off-by: zhanghailiang<zhang.zhanghailiang@huawei.com> >> Reviewed-by: Alex Bennée<alex.bennee@linaro.org> >> --- >> slirp/misc.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/slirp/misc.c b/slirp/misc.c >> index b8eb74c..f7fe497 100644 >> --- a/slirp/misc.c >> +++ b/slirp/misc.c >> @@ -54,7 +54,7 @@ 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)); >> + *ex_ptr = (struct ex_list *)g_malloc(sizeof(struct ex_list)); > > There's a convinient macro in glib, g_new(typename, numelts). Also > there's a less commonly used g_renew() which is like realloc, but it > is not applicable here. > Hmm, it is a good idea to use g_new instead of g_malloc, we have to perform type cast for g_malloc.(BTW, i found in qemu there are several places use g_malloc but not perform appropriate type coercions) I will modify this.Thanks :) >> (*ex_ptr)->ex_fport = port; >> (*ex_ptr)->ex_addr = addr; >> (*ex_ptr)->ex_pty = do_pty; >> @@ -235,7 +235,7 @@ strdup(str) >> { >> char *bptr; >> >> - bptr = (char *)malloc(strlen(str)+1); >> + bptr = (char *)g_malloc(strlen(str)+1); >> strcpy(bptr, str); >> >> return bptr; > > Oh. And this one should be removed completely. It is a reimplementation > of strdup() for system which lacks it. This code should go, we don't build I couldn't agree more, i will removed it. > on such a system anyway and we always have g_strdup(). There's one more > usage of strdup() in this file, btw. > OK, Thanks. > I'm sorry for being so picky, and you're already at v7, but heck.. We should > be more active at reviewing patches :) > Aha! ;),i really appreciate your help. I learned a lot. Thanks. > Thanks, > > /mjt > > . >
19.08.2014 11:30, zhanghailiang wrote: [] > Hmm, it is a good idea to use g_new instead of g_malloc, > we have to perform type cast for g_malloc.(BTW, i found in qemu there > are several places use g_malloc but not perform appropriate type > coercions) There's no need to perform explicit type conversion from void* to type*. Thanks, /mjt
diff --git a/slirp/misc.c b/slirp/misc.c index b8eb74c..f7fe497 100644 --- a/slirp/misc.c +++ b/slirp/misc.c @@ -54,7 +54,7 @@ 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)); + *ex_ptr = (struct ex_list *)g_malloc(sizeof(struct ex_list)); (*ex_ptr)->ex_fport = port; (*ex_ptr)->ex_addr = addr; (*ex_ptr)->ex_pty = do_pty; @@ -235,7 +235,7 @@ strdup(str) { char *bptr; - bptr = (char *)malloc(strlen(str)+1); + bptr = (char *)g_malloc(strlen(str)+1); strcpy(bptr, str); return bptr;