Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
b1e86e5a3d
!25 fixed coverity issues
From: @fandeyuan 
Reviewed-by: @dillon_chen 
Signed-off-by: @dillon_chen
2024-11-21 08:49:14 +00:00
fandeyuan
3fac226340 coverity fixes 2024-11-21 11:38:26 +08:00
openeuler-ci-bot
64510b4bce
!22 fix:which fails for long path
From: @fandeyuan 
Reviewed-by: @dillon_chen 
Signed-off-by: @dillon_chen
2024-05-16 09:15:44 +00:00
fandeyuan
778631f6f1 which fails for long path 2024-05-13 15:36:51 +08:00
openeuler-ci-bot
f5eb9f1305
!20 Remove unnecessary -S git
From: @wubijie123 
Reviewed-by: @dillon_chen 
Signed-off-by: @dillon_chen
2024-05-13 02:48:37 +00:00
wubijie
0e625eb4d0 Remove unnecessary -S git 2024-05-10 15:58:10 +08:00
openeuler-ci-bot
36b487f6fd
!3 【轻量级PR】修正changelog中的错误日期
From: @konglidong 
Reviewed-by: @overweight 
Signed-off-by: @overweight
2022-06-15 08:39:11 +00:00
konglidong
1340b38b62 modify bogus date in %changelog 2022-05-16 14:01:35 +08:00
openeuler-ci-bot
61b15fc489 !1 which
Merge pull request !1 from syyhao/init
2020-01-09 09:48:05 +08:00
openeuler-basic
e2702e3d9d remove unnecessary files 2020-01-08 16:24:19 +08:00
6 changed files with 170 additions and 47 deletions

View File

@ -0,0 +1,59 @@
From 77420bf2e35444f348b19e0acaf1f77bb4ed3f76 Mon Sep 17 00:00:00 2001
From: fandeyuan <fandeyuan@kylinos.cn>
Date: Tue, 30 Apr 2024 14:18:20 +0800
Subject: [PATCH] which fails for long path
---
which.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/which.c b/which.c
index 1606052..525c0d0 100644
--- a/which.c
+++ b/which.c
@@ -19,10 +19,15 @@
#include "sys.h"
#include <stdio.h>
#include <ctype.h>
+#include <limits.h>
#include "getopt.h"
#include "tilde/tilde.h"
#include "bash.h"
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
static const char *progname;
static void print_usage(FILE *out)
@@ -63,7 +68,7 @@ static void print_fail(const char *name, const char *path_list)
fprintf(stderr, "%s: no %s in (%s)\n", progname, name, path_list);
}
-static char home[256];
+static char home[PATH_MAX];
static size_t homelen = 0;
static int absolute_path_given;
@@ -162,7 +167,7 @@ static char *find_command_in_path(const char *name, const char *path_list, int *
return (found);
}
-static char cwd[256];
+static char cwd[PATH_MAX];
static size_t cwdlen;
static void get_current_working_directory(void)
@@ -194,7 +199,7 @@ static void get_current_working_directory(void)
static char *path_clean_up(const char *path)
{
- static char result[256];
+ static char result[PATH_MAX];
const char *p1 = path;
char *p2 = result;
--
2.33.0

80
0002-coverity-fixes.patch Normal file
View File

@ -0,0 +1,80 @@
From 741e8fa0ee62563589870592071188d6391ead38 Mon Sep 17 00:00:00 2001
From: Than Ngo <than@redhat.com>
Date: Sun, 21 Mar 2021 18:34:09 +0000
Subject: [PATCH] coverity fixes
---
tilde/tilde.c | 8 ++++----
which.c | 7 ++++---
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/tilde/tilde.c b/tilde/tilde.c
index 1b76c9f..b393506 100644
--- a/tilde/tilde.c
+++ b/tilde/tilde.c
@@ -193,10 +193,10 @@ tilde_expand (string)
const char *string;
{
char *result;
- int result_size, result_index;
+ int result_size = 0, result_index = 0;
- result_index = result_size = 0;
- if (result = strchr (string, '~'))
+ result = strchr (string, '~');
+ if (result)
result = (char *)xmalloc (result_size = (strlen (string) + 16));
else
result = (char *)xmalloc (result_size = (strlen (string) + 1));
@@ -270,7 +270,7 @@ isolate_tilde_prefix (fname, lenp)
char *ret;
int i;
- ret = (char *)xmalloc (strlen (fname));
+ ret = (char *)xmalloc (strlen (fname) + 1);
#if defined (__MSDOS__)
for (i = 1; fname[i] && fname[i] != '/' && fname[i] != '\\'; i++)
#else
diff --git a/which.c b/which.c
index 525c0d0..9f93021 100644
--- a/which.c
+++ b/which.c
@@ -81,16 +81,16 @@ static int skip_functions = 0, read_functions = 0;
static char *find_command_in_path(const char *name, const char *path_list, int *path_index)
{
- char *found = NULL, *full_path;
+ char *found = NULL, *full_path = NULL;
int status, name_len;
name_len = strlen(name);
+ char *p;
if (!absolute_program(name))
absolute_path_given = 0;
else
{
- char *p;
absolute_path_given = 1;
if (abs_path)
@@ -164,6 +164,7 @@ static char *find_command_in_path(const char *name, const char *path_list, int *
free(full_path);
}
+ name = NULL; p = NULL; path_list = NULL;
return (found);
}
@@ -545,7 +546,7 @@ int main(int argc, char *argv[])
int function_start_type = 0;
if (read_alias || read_functions)
{
- char buf[1024];
+ char buf[1024] = {};
int processing_aliases = read_alias;
if (isatty(0))
--
2.43.0

View File

@ -1,27 +0,0 @@
diff -up which-2.21/tilde/tilde.c.me which-2.21/tilde/tilde.c
--- which-2.21/tilde/tilde.c.me 2018-07-23 14:32:47.002225732 +0200
+++ which-2.21/tilde/tilde.c 2018-07-23 14:49:06.363623898 +0200
@@ -196,7 +196,8 @@ tilde_expand (string)
int result_size, result_index;
result_index = result_size = 0;
- if (result = strchr (string, '~'))
+ result = strchr (string, '~');
+ if (result)
result = (char *)xmalloc (result_size = (strlen (string) + 16));
else
result = (char *)xmalloc (result_size = (strlen (string) + 1));
diff -up which-2.21/which.c.me which-2.21/which.c
diff -up which-2.21/which.c.me which-2.21/which.c
--- which-2.21/which.c.me 2018-07-23 15:09:04.355222509 +0200
+++ which-2.21/which.c 2018-07-25 14:57:43.696309701 +0200
@@ -671,6 +671,9 @@ int main(int argc, char *argv[])
}
}
+ if (abs_path)
+ free(abs_path);
+
return fail_count;
}

View File

@ -1,15 +1,15 @@
Name: which
Version: 2.21
Release: 13
Release: 18
Summary: Show the full path of commands
License: GPLv3
URL: https://savannah.gnu.org/projects/which/
Source0: http://ftp.gnu.org/gnu/which/%{name}-%{version}.tar.gz
Source1: which2.sh
Source2: which2.csh
Patch0: which-2.21-coverity-fixes.patch
BuildRequires: gcc git
Patch1: 0001-which-fails-for-long-path.patch
Patch2: 0002-coverity-fixes.patch
BuildRequires: gcc
%description
Which takes one or more arguments. For each of its arguments it prints to stdout
@ -22,7 +22,7 @@ Summary: Help files for which
Contains documents and manuals files for which
%prep
%autosetup -n %{name}-%{version} -p1 -S git
%autosetup -n %{name}-%{version} -p1
%build
%configure
@ -31,13 +31,10 @@ Contains documents and manuals files for which
%install
%make_install
mkdir -p %{buildroot}/%{_sysconfdir}/profile.d
install -p -m 0644 %{SOURCE1} %{SOURCE2} %{buildroot}/%{_sysconfdir}/profile.d
rm -f %{buildroot}/%{_datadir}/info/dir
%files
%license COPYING AUTHORS
%{_sysconfdir}/profile.d/%{name}*
%{_bindir}/%{name}
%files help
@ -46,7 +43,31 @@ rm -f %{buildroot}/%{_datadir}/info/dir
%{_datadir}/info/%{name}.info.gz
%changelog
* Wed Oct 10 2019 luhuaxin <luhuaxin@huawei.com> - 2.21-13
* Thu Nov 21 2024 Deyuan Fan <fandeyuan@kylinos.cn> - 2.21-18
- fixed coverity issues
* Mon May 13 2024 Deyuan Fan <fandeyuan@kylinos.cn> - 2.21-17
- Type: bugfix
- ID: NA
- SUG: NA
- DESC: fix:which fails for long path
* Fri May 10 2024 wubijie <wubijie@kylinos.cn> -2.21-16
- Type: enhancement
- ID: NA
- SUG: NA
- DESC: remove unnecessary -S git
* Mon May 16 2022 konglidong <konglidong@uniontech.com> - 2.21-15
- modify bogus date in %changelog
* Wed Jan 8 2020 openEuler Buildteam <buildteam@openeuler.org> - 2.21-14
- Type: enhancement
- ID: NA
- SUG: NA
- DESC: remove unnecessary files
* Thu Oct 10 2019 luhuaxin <luhuaxin@huawei.com> - 2.21-13
- Type: enhancement
- ID: NA
- SUG: NA

View File

@ -1,3 +0,0 @@
# Initialization script for csh
# alias which 'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

View File

@ -1,7 +0,0 @@
# Initialization script for bash and sh
if [ "$0" = ksh ] ; then
alias which='(alias; typeset -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
else
alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
fi