Am 06.12.2010 09:34, schrieb Alan Coopersmith: > walter harms wrote: >> >> Am 05.12.2010 18:51, schrieb Alan Coopersmith: >> >>>>> diff --git a/hw/xfree86/common/xf86ShowOpts.c >>>>> b/hw/xfree86/common/xf86ShowOpts.c >>>>> index ce86090..c0fa80a 100644 >>>>> --- a/hw/xfree86/common/xf86ShowOpts.c >>>>> +++ b/hw/xfree86/common/xf86ShowOpts.c >>>>> @@ -97,11 +97,8 @@ void DoShowOptions (void) { >>>>> ); >>>>> continue; >>>>> >>>>> } >>>>> - pSymbol = malloc( >>>>> - strlen(xf86DriverList[i]->driverName) + >>>>> strlen("ModuleData") + 1 >>>>> - ); >>>>> - strcpy (pSymbol, xf86DriverList[i]->driverName); >>>>> - strcat (pSymbol, "ModuleData"); >>>>> + XNFasprintf(&pSymbol, "%sModuleData", >>>>> + xf86DriverList[i]->driverName); >>>> >>>> every code before checks the return value of asprintf but not here ? >>> We don't need to know the length, and error is not an option from the XNF* >>> variants - they either succeed or cause the server to abort. I used the >>> XNF* here since if the malloc failed, previously the server exited, just >>> going through the sigsegv handler instead of a cleaner AbortServer(). >>> (NF is "No Fail") >>> >> >> >> mmh, so XNFasprintf() could be void instead of int ? > > If we were sure that no caller would ever want the returned string length - > but > we're not, and that would be a needless change from the normal asprintf() API. >
but this is not the normal asprintf() but you are right it makes sense to have a length so you can use realloc to increase it, or you drop it and use asprintf(&mod,"%s%",mod,mod2) to append. Do you realy think anyone whould use it ? people we use it as errorindicator and what value has an errorindicator in a function that can not fail ? re, wh _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel