Thank you for your reply.
Try this. The results are reported after the test.

T.O

On Fri, 20 Apr 2018 14:55:00 +0000
"Micah Snyder (micasnyd)" <micas...@cisco.com> wrote:

> Sorry for the lag time getting back to you Tsutomu.
> 
> That is a very good question.
> 
> At a minimum, it looks as though the function definition should be
> 
> 
> static inline int64_t cli_readint64(const void *buff)
> 
> 
> instead of
> 
> 
> static inline int32_t cli_readint64(const void *buff)
> 
> 
> That said, it also appears that the lines in cli_readint64() and others 
> should more explicitly cast the type prior to the shift.  Something like:
> 
> 
> 
> diff --git a/libclamav/others.h b/libclamav/others.h
> index 65d20ef17..ab32e8fcb 100644
> --- a/libclamav/others.h
> +++ b/libclamav/others.h
> @@ -579,18 +579,18 @@ struct unaligned_ptr {
>      #define be32_to_host(v) (v)
>      #define be64_to_host(v) (v)
> 
> -    static inline int32_t cli_readint64(const void *buff)
> +    static inline int64_t cli_readint64(const void *buff)
>      {
>          int64_t ret;
> -        ret = ((const char *)buff)[0] & 0xff;
> -        ret |= (((const char *)buff)[1] & 0xff) << 8;
> -        ret |= (((const char *)buff)[2] & 0xff) << 16;
> -        ret |= (((const char *)buff)[3] & 0xff) << 24;
> -
> -        ret |= (((const char *)buff)[4] & 0xff) << 32;
> -        ret |= (((const char *)buff)[5] & 0xff) << 40;
> -        ret |= (((const char *)buff)[6] & 0xff) << 48;
> -        ret |= (((const char *)buff)[7] & 0xff) << 56;
> +        ret = (int64_t)((const char *)buff)[0] & 0xff;
> +        ret |= (int64_t)(((const char *)buff)[1] & 0xff) << 8;
> +        ret |= (int64_t)(((const char *)buff)[2] & 0xff) << 16;
> +        ret |= (int64_t)(((const char *)buff)[3] & 0xff) << 24;
> +
> +        ret |= (int64_t)(((const char *)buff)[4] & 0xff) << 32;
> +        ret |= (int64_t)(((const char *)buff)[5] & 0xff) << 40;
> +        ret |= (int64_t)(((const char *)buff)[6] & 0xff) << 48;
> +        ret |= (int64_t)(((const char *)buff)[7] & 0xff) << 56;
>          return ret;
>      }
> 
> 
> Any chance you could try that patch to see if the warnings go away?
> 
> Regarding the 'ld' ERROR's youre seeing.  It looks as though it's failing to 
> link correctly against libmspack or libclammspack.  Despite the above bug, 
> this is what is now preventing you from completing the build.  It may have 
> something to do with the ' --disable-static ' on your configure line.
> 
> Micah Snyder
> ClamAV Development
> Talos
> Cisco Systems, Inc.
> 
> 
> On Apr 14, 2018, at 8:12 AM, Tsutomu Oyamada 
> <oyam...@promark-inc.com<mailto:oyam...@promark-inc.com>> wrote:
> 
> ld: 0711-317 ERROR: Undefined symbol: .mspack_create_cab_decompressor
> ld: 0711-317 ERROR: Undefined symbol: .mspack_destroy_cab_decompressor
> ld: 0711-317 ERROR: Undefined symbol: .mspack_create_chm_decompressor
> ld: 0711-317 ERROR: Undefined symbol: .mspack_destroy_chm_decompressor
> ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
> collect2: error: ld returned 8 exit status
> -------
> 
> This message "Warning: Left shift count > = width of type" is many.
> The following is the message in configure:
> --------
> checking size of short... 2
> checking size of int... 4
> checking size of long... 8
> checking size of long long... 8
> checking size of void *... 8
> --------
> The size of the variable type is in 32bit mode.
> Is this correct?
> 
> _______________________________________________
> http://lurker.clamav.net/list/clamav-devel.html
> Please submit your patches to our Bugzilla: http://bugs.clamav.net
> 
> http://www.clamav.net/contact.html#ml


_______________________________________________
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net

http://www.clamav.net/contact.html#ml

Reply via email to