diff options
author | Sören Tempel <soeren+git@soeren-tempel.net> | 2021-04-02 12:22:25 +0200 |
---|---|---|
committer | Sören Tempel <soeren+git@soeren-tempel.net> | 2021-04-02 12:22:25 +0200 |
commit | 1b954e4120c1565134e9d81296e4fec3ce8e7a7c (patch) | |
tree | 5ac937c958f19da659ad4bb93610b666ecf66615 | |
parent | 646c834492a419a96b4032c230e842d27f87e997 (diff) | |
download | apk-tools-1b954e4120c1565134e9d81296e4fec3ce8e7a7c.tar.gz apk-tools-1b954e4120c1565134e9d81296e4fec3ce8e7a7c.tar.bz2 apk-tools-1b954e4120c1565134e9d81296e4fec3ce8e7a7c.tar.xz apk-tools-1b954e4120c1565134e9d81296e4fec3ce8e7a7c.zip |
Fix segfault in log_internal if prefix is APK_OUT_LOG_ONLY
This commit fixes a regression which was introduced in changeset
646c834492a419a96b4032c230e842d27f87e997. If apk_out_fmt() is called
while out->log is set and prefix is set to APK_OUT_LOG_ONLY, then
apk_out_fmt() would pass this prefix to log_internal() which would, in
turn, attempt to write it to standard out using fprintf().
Unfortunately, doing so wont work as intended if prefix is ((char*)-1)
(i.e. APK_OUT_LOG_ONLY) and will cause a segmentation fault instead.
This commit fixes this segmentation fault by not printing the prefix in
log_internal() if it is either NULL or APK_OUT_LOG_ONLY.
-rw-r--r-- | src/print.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/print.c b/src/print.c index cc82c49..0203cbb 100644 --- a/src/print.c +++ b/src/print.c @@ -127,7 +127,7 @@ static int apk_out_get_width(struct apk_out *out) static void log_internal(FILE *dest, const char *prefix, const char *format, va_list va) { if (dest != stdout) fflush(stdout); - if (prefix != NULL) fprintf(dest, "%s", prefix); + if (prefix != NULL && prefix != APK_OUT_LOG_ONLY) fprintf(dest, "%s", prefix); vfprintf(dest, format, va); fprintf(dest, "\n"); fflush(dest); |