[U-Boot] [PATCH] efi_loader: Fix warning in raw/cols query

The code to determine rows / cols on the screen could potentially run into a case where it doesn't know how big the screen is. In that case, assume 80x25.
Signed-off-by: Alexander Graf agraf@suse.de --- lib/efi_loader/efi_console.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index 0bfc24dbd9..ce66c935ec 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -223,7 +223,7 @@ static int query_console_serial(int *rows, int *cols) static void query_console_size(void) { const char *stdout_name = env_get("stdout"); - int rows, cols; + int rows = 25, cols = 80;
if (stdout_name && !strcmp(stdout_name, "vidconsole") && IS_ENABLED(CONFIG_DM_VIDEO)) {

On 06/03/2018 03:52 PM, Alexander Graf wrote:
The code to determine rows / cols on the screen could potentially run into a case where it doesn't know how big the screen is. In that case, assume 80x25.
This patch may silence a compiler warning. But to me it is unclear on which path of the code we could end up actually using undefined values of cols or rows without the patch.
If we are copying cols and rows from vidconsole, this patch does not make a difference.
If we call query_console_serial() that routine either initializes rows and cols or returns -1 in which case we do not consume rows and cols.
Could you, please, either clearly state that this patch only serves to silence an invalid compiler warning or identify the path to the consumption of uninitialized values.
Best regards
Heinrich
Signed-off-by: Alexander Graf agraf@suse.de
lib/efi_loader/efi_console.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index 0bfc24dbd9..ce66c935ec 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -223,7 +223,7 @@ static int query_console_serial(int *rows, int *cols) static void query_console_size(void) { const char *stdout_name = env_get("stdout");
- int rows, cols;
int rows = 25, cols = 80;
if (stdout_name && !strcmp(stdout_name, "vidconsole") && IS_ENABLED(CONFIG_DM_VIDEO)) {

Am 03.06.2018 um 19:37 schrieb Heinrich Schuchardt xypron.debian@gmx.de:
On 06/03/2018 03:52 PM, Alexander Graf wrote: The code to determine rows / cols on the screen could potentially run into a case where it doesn't know how big the screen is. In that case, assume 80x25.
This patch may silence a compiler warning. But to me it is unclear on which path of the code we could end up actually using undefined values of cols or rows without the patch.
If we are copying cols and rows from vidconsole, this patch does not make a difference.
If we call query_console_serial() that routine either initializes rows and cols or returns -1 in which case we do not consume rows and cols.
Could you, please, either clearly state that this patch only serves to silence an invalid compiler warning or identify the path to the consumption of uninitialized values.
If the serial client on the other end replies with <esc>[t then the values of n are uninitialized. I have to admit that this patch doesn't help in that case either though.
Alex
participants (2)
-
Alexander Graf
-
Heinrich Schuchardt