On Fri, Oct 8, 2021 at 2:45 PM Lauri Kasanen <c...@gmx.com> wrote:
>
> Hi,
>
> On current bb master httpd, when the client requests valid Range: bytes
> over 4gb, the response is wrong - it sends the entire file instead of
> the requested range.
>
> E.g.
> Range: bytes=5926192128-5926195199
>
> This is on x86_64, so CONFIG_LFS etc shouldn't matter. I haven't
> yet looked deeper if it's just a matter of using 64-bit vars.

Bug in libbb.h:

#else
/* CONFIG_LFS is off */
# if UINT_MAX == 0xffffffff
/* While sizeof(off_t) == sizeof(int), off_t is typedef'ed to long anyway.
 * gcc will throw warnings on printf("%d", off_t). Crap... */
typedef unsigned long uoff_t;
#  define XATOOFF(a) xatoi_positive(a)
#  define BB_STRTOOFF bb_strtou
#  define STRTOOFF strtol
#  define OFF_FMT "l"

WRONG. If CONFIG_LFS is off, sizeof(off_t) can be larger than sizeof(int).
x86_64 is an example.


Fixed in git, please test.
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to