From 806ccd90ede19a69a013206641e5c6e330950d07 Mon Sep 17 00:00:00 2001 From: Carlo Teubner Date: Sun, 3 Oct 2021 09:24:06 +0200 Subject: "pacman -Q --changelog": fix writing uninit'd mem Previously, when printing a package changelog to stdout, we would write chunks of data that were not necessarily nul-terminated to stdout using a function (fputs) which requires the input string to be nul-terminated. On my system, this would result in occasional garbage characters showing up in the "pacman -Qc" output. Fix this by never nul-terminating the chunk, and using the fwrite() function which takes an explicit input size and does not require a nul-terminated string. Signed-off-by: Carlo Teubner --- src/pacman/package.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src') diff --git a/src/pacman/package.c b/src/pacman/package.c index eaee3bb0..3eae9797 100644 --- a/src/pacman/package.c +++ b/src/pacman/package.c @@ -466,11 +466,7 @@ void dump_pkg_changelog(alpm_pkg_t *pkg) char buf[CLBUF_SIZE]; size_t ret = 0; while((ret = alpm_pkg_changelog_read(buf, CLBUF_SIZE, pkg, fp))) { - if(ret < CLBUF_SIZE) { - /* if we hit the end of the file, we need to add a null terminator */ - *(buf + ret) = '\0'; - } - fputs(buf, stdout); + fwrite(buf, 1, ret, stdout); } alpm_pkg_changelog_close(pkg, fp); putchar('\n'); -- cgit v1.2.3-70-g09d2