1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-19 22:50:17 +03:00

qrcode-util: avoid memleak in error path

(cherry picked from commit 439306da8b3962f683f5359c461d1669c070f377)
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2024-10-28 13:45:40 +01:00 committed by Luca Boccassi
parent bbdb5f97a9
commit bbda54c671

View File

@ -172,6 +172,8 @@ static void write_qrcode(FILE *output, QRcode *qr, unsigned int row, unsigned in
fflush(output);
}
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(QRcode*, sym_QRcode_free, NULL);
int print_qrcode_full(
FILE *out,
const char *header,
@ -182,7 +184,6 @@ int print_qrcode_full(
unsigned tty_height,
bool check_tty) {
QRcode* qr;
int r;
/* If this is not a UTF-8 system or ANSI colors aren't supported/disabled don't print any QR
@ -196,7 +197,8 @@ int print_qrcode_full(
if (r < 0)
return r;
qr = sym_QRcode_encodeString(string, 0, QR_ECLEVEL_L, QR_MODE_8, 1);
_cleanup_(sym_QRcode_freep) QRcode *qr =
sym_QRcode_encodeString(string, 0, QR_ECLEVEL_L, QR_MODE_8, 1);
if (!qr)
return log_oom_debug();
@ -230,7 +232,6 @@ int print_qrcode_full(
write_qrcode(out, qr, row, column);
fputc('\n', out);
sym_QRcode_free(qr);
return 0;
}
#endif