[git commit] libbb.h: fix logic selecting incorrect BB_STRTOOFF for !LFS configs
Denys Vlasenko
vda.linux at googlemail.com
Fri Oct 8 13:54:40 UTC 2021
commit: https://git.busybox.net/busybox/commit/?id=049775b2ef39a20dc08a6bf89e2831e8422f7363
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
BB_STRTOOFF() was equal to bb_strtou(). On x86_64, it's incorrect.
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
include/libbb.h | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/include/libbb.h b/include/libbb.h
index 02cc008f0..b72576f28 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -305,9 +305,13 @@ typedef unsigned long long uoff_t;
# endif
#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... */
+/* sizeof(off_t) == sizeof(long).
+ * May or may not be == sizeof(int). If it is, use xatoi_positive()
+ * and bb_strtou() instead of xatoul_range() and bb_strtoul().
+ * Even if sizeof(off_t) == sizeof(int), off_t is typedef'ed to long anyway.
+ * gcc will throw warnings on printf("%d", off_t)... Have to use %ld etc.
+ */
+# if UINT_MAX == ULONG_MAX
typedef unsigned long uoff_t;
# define XATOOFF(a) xatoi_positive(a)
# define BB_STRTOOFF bb_strtou
More information about the busybox-cvs
mailing list