[Oisf-devel] Source code technical question

Victor Julien victor at inliniac.net
Mon Jul 29 16:46:23 UTC 2013


On 07/25/2013 11:32 AM, Duarte Silva wrote:
> Hi all,
> 
> in "util-host-os-info.c", functions "SCHInfoValidateIPV4Address"and 
> "SCHInfoValidateIPV6Address" are exaclty the same as "util-radix-tree.c" 
> functions "SCRadixValidateIPV4Address" and "SCRadixValidateIPV6Address".
> 
> With a small exception in "SCHInfoValidateIPV4Address", it doesn't exit if the 
> memory allocation fails.
> 
> Would it be a good idea to merge this functions?

Definitely. Code duplication is evil. :)

Are you interested in doing this?

Cheers,
Victor

> Best regards,
> Duarte
> 
> On Wednesday 24 July 2013 15:10:46 Duarte Silva wrote:
>> On Wednesday 24 July 2013 15:47:19 Victor Julien wrote:
>>> On 07/24/2013 03:21 PM, Duarte Silva wrote:
>>>> Hi all,
>>>>
>>>> I was dwelling into Suricata source code and came across this:
>>>>
>>>> #define DEBUG_ASSERT_FLOW_LOCKED(f) do {            \
>>>>
>>>>     if ((f) != NULL) {                              \
>>>>     
>>>>         int r = SCMutexTrylock(&(f)->m);            \
>>>>         if (r == 0) {                               \
>>>>         
>>>>             BUG_ON(1);                              \
>>>>         
>>>>         }                                           \
>>>>     
>>>>     }                                               \
>>>>
>>>> } while(0)
>>>>
>>>> Just wondering, whats the advantage of having this inside a do/while? Is
>>>> it
>>>> because the compiler will optimize it out if not in a debug build?
>>>
>>> Answers can be found on stackoverflow:
>>>
>>> http://stackoverflow.com/questions/923822/whats-the-use-of-do-while0-when-> > we -define-a-macro
>>> http://stackoverflow.com/questions/154136/do-while-and-if-else-statements-> > i
>>> n-c-c-macros
>>> http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for
>>
>> Thanks Victor, I should have googled it :D it never crossed my mind it had
>> anything to do with semi-colons and code blocks. I allways use brackets even
>> for one instruction if's. Hence, when the macro required a code block I
>> just used brackets (it was the Microsoft compiler though, might be
>> different from GCC).
>>
>> Thanks,
>> Duarte
> 


-- 
---------------------------------------------
Victor Julien
http://www.inliniac.net/
PGP: http://www.inliniac.net/victorjulien.asc
---------------------------------------------




More information about the Oisf-devel mailing list