On Thu, Nov 29, 2007 at 05:28:07PM +0000, Richard W.M. Jones wrote: > Daniel P. Berrange wrote: > > All ACKed except: > > >@@ -3808,20 +3808,13 @@ server_error (virConnectPtr conn, remote > > dom = err->dom ? get_nonnull_domain (conn, *err->dom) : NULL; > > net = err->net ? get_nonnull_network (conn, *err->net) : NULL; > > > >- /* These strings are nullable. OK to ignore the return value > >- * of strdup since these strings are informational. > >- */ > >- char *str1 = err->str1 ? strdup (*err->str1) : NULL; > >- char *str2 = err->str2 ? strdup (*err->str2) : NULL; > >- char *str3 = err->str3 ? strdup (*err->str3) : NULL; > >- > >- char *message = err->message ? strdup (*err->message) : NULL; > >- > > __virRaiseError (conn, dom, net, > > err->domain, err->code, err->level, > >- str1, str2, str3, > >+ err->str1 ? *err->str1 : NULL, > >+ err->str2 ? *err->str2 : NULL, > >+ err->str3 ? *err->str3 : NULL, > > err->int1, err->int2, > >- "%s", message); > >+ "%s", err->message ? *err->message : NULL); > > } > > > > /* get_nonnull_domain and get_nonnull_network turn an on-wire > > Don't we need to dup these strings because the following xdr_free (in > the caller) will free them? No, all the params to __virRaiseError, get strdup'd inside virRaiseError before being stored in the virError object. /* * Save the information about the error */ virResetError(to); to->conn = conn; to->dom = dom; to->net = net; to->domain = domain; to->code = code; to->message = str; to->level = level; if (str1 != NULL) to->str1 = strdup(str1); if (str2 != NULL) to->str2 = strdup(str2); if (str3 != NULL) to->str3 = strdup(str3); to->int1 = int1; to->int2 = int2; And the 'msg' arg gets re-allocated as the va-args are procssed with vsnprintf, so there's no need for the virRaiseError caller to strdup stuff itself Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list