Debian Patches

Status for beanstalkd/1.12-2

Patch Description Author Forwarded Bugs Origin Last update
0001-Fix-FTBFS-for-gnu-kfreebsd.patch Fix FTBFS for gnu/kfreebsd Serafeim Zanikolas <sez@debian.org> no debian 2012-04-01
0002-Sanitize-Makefile.patch Sanitize Makefile
Use debian CFLAGS and LDFLAGS instead of upstream's
Gregory Potamianos <greg.potamianos@gmail.com> no 2014-09-18
0003-testserv-fix-endianness-issue.patch testserv: fix endianness issue
Building beanstalkd on big-endian systems (such as s390x, ppc64 and
spart64) currently fails on the test phase, indicating an error in
mustforksrv(). Digging a bit deeper, it turns out this is a type-casting
issue between size_t (unsigned long int) and socklen_t (unsigned int):
on these systems, size_t is 8 bytes, while socklen_t is only 4. These
being big-endian systems, actually casting a (size_t *) pointer as
(socklen_t *) will set the 4 most significant bytes, rather the
least-significant ones, leading to unexpected results.

To better illustrate this, on s390x this code:

size_t sz = 0;
*(socklen_t *)&sz = 4;
printf("*(socklen_t *)&sz = %d, sz = %ld\n", *(socklen_t *)&sz, sz);

produces the following output:

*(socklen_t *)&sz = 4, sz = 17179869184

where 17179869184 = 4 << 32

Fix this by avoiding the cast from size_to to sockaddr_t altogether.
Apollon Oikonomopoulos <apoikos@debian.org> no 2020-09-23

All known versions for source package 'beanstalkd'

Links