Andrew Geissler | 220dafd | 2023-10-04 10:18:08 -0500 | [diff] [blame] | 1 | From 95b0405338440cf5cd6d4b2b5c66cda8bf381b28 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Fri, 15 Sep 2023 00:18:18 -0700 |
| 4 | Subject: [PATCH] lscpu: Use 4K buffer size instead of BUFSIZ |
| 5 | |
| 6 | Some lines in /proc/cpuinfo can be large e.g. flags and can then |
| 7 | truncate them in displaying them |
| 8 | |
| 9 | BUFSIZ can vary quite a bit e.g. glibc/linux systems its 8192 |
| 10 | but on musl/linux and OSX its 1024, on mingW it is 256, some tests e.g. |
| 11 | x86_64-64cpu-linux6.2.tar.gz has added really long line for cpu flags |
| 12 | line which is greater than 1024 characters and hence this test fails |
| 13 | on musl because lscpu -s reports truncated string |
| 14 | |
| 15 | Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/2492] |
| 16 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 17 | --- |
| 18 | sys-utils/lscpu-cputype.c | 4 +++- |
| 19 | 1 file changed, 3 insertions(+), 1 deletion(-) |
| 20 | |
| 21 | diff --git a/sys-utils/lscpu-cputype.c b/sys-utils/lscpu-cputype.c |
| 22 | index 3fd5f7a3c..c8f72ab8a 100644 |
| 23 | --- a/sys-utils/lscpu-cputype.c |
| 24 | +++ b/sys-utils/lscpu-cputype.c |
| 25 | @@ -462,7 +462,9 @@ static int cpuinfo_parse_cache(struct lscpu_cxt *cxt, int keynum, char *data) |
| 26 | int lscpu_read_cpuinfo(struct lscpu_cxt *cxt) |
| 27 | { |
| 28 | FILE *fp; |
| 29 | - char buf[BUFSIZ]; |
| 30 | + /* Used to be BUFSIZ which is small on some platforms e.g, musl, |
| 31 | + * therefore hardcode to 4K */ |
| 32 | + char buf[4096]; |
| 33 | size_t i; |
| 34 | struct lscpu_cputype *ct; |
| 35 | struct cpuinfo_parser _pr = { .cxt = cxt }, *pr = &_pr; |
| 36 | -- |
| 37 | 2.42.0 |
| 38 | |