From: Lennart Poettering Date: Tue, 8 Aug 2023 12:19:21 +0000 (+0200) Subject: vconsole-setup: simplify path allocation X-Git-Tag: v255-rc1~782^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7b218ef9309f40f47a597c15bbd134f0e0d113a7;p=thirdparty%2Fsystemd.git vconsole-setup: simplify path allocation Let's code this straighforwadly, and just allocate the string as we need it, instead of doing pre-allocation. This is not performance sensitive, as this will almost certainly just return /dev/tty1 after the first transition. --- diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c index add0a00e0c0..5f595bf1241 100644 --- a/src/vconsole/vconsole-setup.c +++ b/src/vconsole/vconsole-setup.c @@ -503,12 +503,12 @@ static void setup_remaining_vcs(int src_fd, unsigned src_idx, bool utf8) { static int find_source_vc(char **ret_path, unsigned *ret_idx) { int r, err = 0; - _cleanup_free_ char *path = new(char, sizeof("/dev/tty63")); - if (!path) - return log_oom(); + assert(ret_path); + assert(ret_idx); for (unsigned i = 1; i <= 63; i++) { _cleanup_close_ int fd = -EBADF; + _cleanup_free_ char *path = NULL; r = verify_vc_allocation(i); if (r < 0) { @@ -517,7 +517,9 @@ static int find_source_vc(char **ret_path, unsigned *ret_idx) { continue; } - sprintf(path, "/dev/tty%u", i); + if (asprintf(&path, "/dev/tty%u", i) < 0) + return log_oom(); + fd = open_terminal(path, O_RDWR|O_CLOEXEC|O_NOCTTY); if (fd < 0) { if (!err)