From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1p29fi-00025u-KS for mharc-grub-devel@gnu.org; Mon, 05 Dec 2022 06:30:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p29fh-00025R-DO for grub-devel@gnu.org; Mon, 05 Dec 2022 06:30:05 -0500 Received: from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p29fe-00059O-I2 for grub-devel@gnu.org; Mon, 05 Dec 2022 06:30:05 -0500 Received: by mail-pf1-x42b.google.com with SMTP id n3so6781829pfq.10 for ; Mon, 05 Dec 2022 03:30:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W2G+EqGFfiXuK+H3Bd0tyOkDvIY/4pwDYxfQLPFpAzs=; b=Z83mSOm0uBASxGMU06UQM/+Oz5gchSZ5soTn23/I3KilPQxqaNPocItF83VqVL+xYq Tc1ZQRi/WadTACtreZc3R0O4OUn2AK1yk1itB8hRAjoEbiGGm/SdgmvSf1qO7C2koPuB FT/gfGG8OvQNp5bE36wFhUBloCytcDM3UuC5+qD7XuB2ziD6SOuL2dJwzs6++eFlY7yI ITKDNFwQEF/j0mYFjo10l48cP9pAMUBrWG99ijoEmZZaWlS5j25ci9ogfURl6HFmvYVZ U2uH0ibUXC1PQ7SthGFRlLqX5WefCWNYO9KyW4esByOKsMlRK3TaK5XRR4Gkm9aMSJsf gsjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W2G+EqGFfiXuK+H3Bd0tyOkDvIY/4pwDYxfQLPFpAzs=; b=tKbq58TSPOX0ZLSIqzH8j9b+hDb82DB2g5C3a6DB7E4v8Dnge8zIGu0kcNqGpKmddi Q1VhUo4sbFaQj5Yvc/j2Hk3UeSa1pN0ce0GayVytEbtvCTCv/8JrYq70yOwOuh01orae j22H3IEbaHhUqxwRlckdyOhYq0uOyGLWB0EU0liR6tV+dusldC7aCR2IBf1GrOtgei4O gJrQBQY52eYCBjUzQ/tg2O+dVrxMQDF/yMla8rueNTPIYgOepWQqaZkBIJFvJ+I/CF0F 0GML7PID1F/MdFF6PMpUQY+0tlHAdhpFRJkqsWiLdurtd74bKphAKSJLRGXc9AD5ZFtG gDdA== X-Gm-Message-State: ANoB5plpMLCQtDtt5mWup9/tRezd+isL32oBRzH0zlS5xmi5a2GPIt7m aEv2ZGEGWkhlAhVGIJI4e30FvawZju0= X-Google-Smtp-Source: AA0mqf7cXdWKLDWh+i2j4wJHy6xL3NSq5OpxoLN7srtKWr2gm2VZp0Cgu81h4/6xQBm+4kjPEGrrrQ== X-Received: by 2002:a63:e609:0:b0:458:cfe7:8dd with SMTP id g9-20020a63e609000000b00458cfe708ddmr53776424pgh.548.1670239800928; Mon, 05 Dec 2022 03:30:00 -0800 (PST) Received: from localhost.localdomain (ec2-13-113-80-70.ap-northeast-1.compute.amazonaws.com. [13.113.80.70]) by smtp.gmail.com with ESMTPSA id b7-20020a170902650700b0018869119e37sm10381729plk.142.2022.12.05.03.29.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Dec 2022 03:30:00 -0800 (PST) From: Zhang Boyang To: grub-devel@gnu.org Cc: Zhang Boyang Subject: [PATCH 3/5] font: Reject fonts with negative max_char_width or max_char_height Date: Mon, 5 Dec 2022 19:29:38 +0800 Message-Id: <20221205112940.246486-4-zhangboyang.id@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221205112940.246486-1-zhangboyang.id@gmail.com> References: <20221205112940.246486-1-zhangboyang.id@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2607:f8b0:4864:20::42b; envelope-from=zhangboyang.id@gmail.com; helo=mail-pf1-x42b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Dec 2022 11:30:05 -0000 If max_char_width or max_char_height is negative, bad values might be propagated by grub_font_get_max_char_width() or grub_font_get_max_char_height(). Prevent this from happening. Signed-off-by: Zhang Boyang --- grub-core/font/font.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/font/font.c b/grub-core/font/font.c index 674043d0d..24adcb35a 100644 --- a/grub-core/font/font.c +++ b/grub-core/font/font.c @@ -644,8 +644,8 @@ grub_font_load (const char *filename) font->max_char_width, font->max_char_height, font->num_chars); #endif - if (font->max_char_width == 0 - || font->max_char_height == 0 + if (font->max_char_width <= 0 + || font->max_char_height <= 0 || font->num_chars == 0 || font->char_index == 0 || font->ascent == 0 || font->descent == 0) { -- 2.30.2