On Wed, 2013-08-28 at 19:33 +0200, Lukas Slebodnik wrote:
On (28/08/13 13:11), Simo Sorce wrote:
>On Wed, 2013-08-28 at 17:35 +0200, Lukas Slebodnik wrote:
>> On (28/08/13 09:59), Simo Sorce wrote:
>> >On Wed, 2013-08-28 at 15:31 +0200, Lukas Slebodnik wrote:
>> >> +/* Endianness-compatibility for systems running older versions of
>> >> glibc */
>> >> +
>> >> +#ifndef le32toh
>> >> +#ifdef HAVE_BYTESWAP_H
>> >> +# include <byteswap.h>
>> >> +#endif /* HAVE_BYTESWAP_H */
>> >> +
>> >> +/* support RHEL5 lack of definitions */
>> >> +/* Copied from endian.h on glibc 2.15 */
>> >> +#ifdef __USE_BSD
>> >> +/* Conversion interfaces. */
>> >> +# if __BYTE_ORDER == __LITTLE_ENDIAN
>> >> +# define le32toh(x) (x)
>> >> +# define htole32(x) (x)
>> >> +# else
>> >> +# define le32toh(x) __bswap_32 (x)
>> >> +# define htole32(x) __bswap_32 (x)
>> >> +# endif
>> >> +#endif /* __USE_BSD */
>> >> +
>> >> +#endif /* le32toh */
>> >> +
>> >
>> >If byteswap is not defined does the rest of the define work ?
>> >
>> >In the code you replace byteswap is included unconditionally as I assume
>> >it is the file that contains __BYTE_ORDER__ , __LITTLE_ENDIAN and other
>> >definitions needed to reimplement le32toh, so the if byteswap.h is not
>> >available I guess the rest of the ifdef will just fail ?
>> >
>> >maybe you should have instead:
>> >
>> >#ifndef le32toh
>> >#ifndef HAVE_BYTESWAP_H
>> >#error missing le32toh and byteswap.h
>> >#else
>> >/* support RHEL5 lack of definitions */
>> >...
>> >...
>> >#endif /* HAVE_BYTESWAP_H */
>> >#endif /* le32toh */
>> >
>> Changed.
>>
>> I also changed patch with sss_strnlen
>> from ++*len
>> to (*len)++
>>
>> Updated patches are attached
>
>Unfortunately my example code fooled you and now the code is missing
>#include <byteswap.h> completely, add it in the #else branch and you
>have my ack.
>
>Simo.
Sure, stupid mistake.
ACK
Simo.
--
Simo Sorce * Red Hat, Inc * New York