!31 [sync] PR-28: gdbm: fix stack overflow in print_usage

From: @openeuler-sync-bot 
Reviewed-by: @liuzhiqiang26 
Signed-off-by: @liuzhiqiang26
This commit is contained in:
openeuler-ci-bot 2022-03-02 06:39:49 +00:00 committed by Gitee
commit af2ff04e49
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 34 additions and 2 deletions

View File

@ -0,0 +1,28 @@
From 48e22dd008138bb97d2a673af9da5b1b3457c86f Thu Sep 9 08:15:07 2021
From: Sergey Poznyakoff <gray@gnu.org>
Date: Thu, 9 Sep 2021 15:04:27 +0800
Subject: [PATCH] Fix stack overflow in print_usage
src/parseopt.c (print_usage): Fix length calculation for long
options.
Conflict:NA
Reference:https://git.gnu.org.ua/gdbm.git/commit/?id=48e22dd008138bb97d2a673af9da5b1b3457c86f
---
src/parseopt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/parseopt.c b/src/parseopt.c
index bc47597..efa12c8 100644
--- a/src/parseopt.c
+++ b/src/parseopt.c
@@ -495,7 +495,7 @@ print_usage (void)
{
struct gdbm_option *opt = option_tab + idxbuf[i];
const char *arg = opt->opt_arg ? gettext (opt->opt_arg) : NULL;
- size_t len = 3 + strlen (opt->opt_long)
+ size_t len = 5 + strlen (opt->opt_long)
+ (arg ? 1 + strlen (arg) : 0);
if (n + len > RMARGIN) FLUSH;
buf[n++] = ' ';

View File

@ -1,13 +1,14 @@
Name: gdbm
Version: 1.18.1
Release: 3
Release: 4
Epoch: 1
Summary: A library of database functions that work similar to the standard UNIX dbm
License: GPLv3+
URL: http://www.gnu.org/software/gdbm/
Source0: http://ftp.gnu.org/gnu/gdbm/gdbm-%{version}.tar.gz
Patch0: Fix-gdbmtool-import-command.patch
Patch0: 0000-Fix-gdbmtool-import-command.patch
Patch1: 0001-fix-gdbm_dump-usage-stack-overflow.patch
BuildRequires: gcc libtool gettext readline-devel git
@ -99,6 +100,9 @@ fi
%{_infodir}/*.info*
%changelog
* Wed Mar 02 2022 Zhiqiang Liu <liuzhiqiang26@huawei.com> - 1.18.1-4
- Fix stack overflow in print_usage
* Thu Nov 25 2021 yangchenguang <yangchenguang@uniontech.com> - 1.18.1-3
- Fix gdbmtool parm import error