Hi Dengke,
On 11/2/2016 08:31, Dengke Du wrote:
> When run the following command on x86:
>
>         svnadmin create /var/test_repo
>
> It cause segmentation fault error like the following:
>
>         [16499.751837] svnadmin[21117]: segfault at 83 ip 00000000f74bf7f6 sp 
> 00000000ffdd9b34 error 4 in libc-2.24.so[f7441000+1af000]
>         Segmentation fault (core dumped)
>
> This is because in source code ./subversion/libsvn_fs_fs/low_level.c,
> function svn_fs_fs__unparse_footer, when:
>
>         target arch:    x86
>         apr_off_t:      4 bytes
>
> if the "APR_OFF_T_FMT" is "lld", it still use type "apr_off_t" to pass
> data to apr, but in apr source code file apr_snprintf.c the function
> apr_vformatter meet "lld", it would use the:
>
>         i_quad = va_arg(ap, apr_int64_t);
>
> It uses the apr_int64_t to deal data, it read 8 bytes, so the follow-up
> data may be error.
>
> Signed-off-by: Dengke Du <dengke...@windriver.com>
> ---
>  subversion/libsvn_fs_fs/low_level.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/subversion/libsvn_fs_fs/low_level.c 
> b/subversion/libsvn_fs_fs/low_level.c
> index a27bbcc..6ddbe28 100644
> --- a/subversion/libsvn_fs_fs/low_level.c
> +++ b/subversion/libsvn_fs_fs/low_level.c
> @@ -250,10 +250,10 @@ svn_fs_fs__unparse_footer(apr_off_t l2p_offset,
>  {
>    return svn_stringbuf_createf(result_pool,
>                                 "%" APR_OFF_T_FMT " %s %" APR_OFF_T_FMT " %s",
> -                               l2p_offset,
> +                               (APR_OFF_T_FMT=="lld") ? 
> (apr_int64_t)l2p_offset : l2p_offset,
>                                 svn_checksum_to_cstring(l2p_checksum,
>                                                         scratch_pool),
> -                               p2l_offset,
> +                               (APR_OFF_T_FMT=="lld") ? 
> (apr_int64_t)p2l_offset : p2l_offset,
>                                 svn_checksum_to_cstring(p2l_checksum,
>                                                         scratch_pool));
>  }

The patch you are suggesting applies to subversion, not to apr. Maybe
you are better of sending the mail to the svn dev list?

Regards,
Stefan


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to