[PATCH] "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 <carlo@cteubner.net> --- src/pacman/package.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) 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'); -- 2.33.0
participants (2)
-
Carlo Teubner
-
Kevin Morris