Compare commits
5 Commits
imports/c8
...
c8
Author | SHA1 | Date | |
---|---|---|---|
ca6da9a85f | |||
|
779b4cdce1 | ||
|
80b3755542 | ||
|
1ab0b0f1ed | ||
|
39f4399ce4 |
62
SOURCES/which-2.21-coverity.patch
Normal file
62
SOURCES/which-2.21-coverity.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
diff -up which-2.21/tilde/tilde.c.coverity2 which-2.21/tilde/tilde.c
|
||||||
|
--- which-2.21/tilde/tilde.c.coverity2 2021-03-21 21:04:34.691775991 +0100
|
||||||
|
+++ which-2.21/tilde/tilde.c 2021-03-21 21:13:36.853129481 +0100
|
||||||
|
@@ -193,9 +193,8 @@ 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;
|
||||||
|
result = strchr (string, '~');
|
||||||
|
if (result)
|
||||||
|
result = (char *)xmalloc (result_size = (strlen (string) + 16));
|
||||||
|
@@ -271,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 -up which-2.21/which.c.coverity2 which-2.21/which.c
|
||||||
|
--- which-2.21/which.c.coverity2 2021-03-21 21:04:34.691775991 +0100
|
||||||
|
+++ which-2.21/which.c 2021-03-21 21:04:34.692775983 +0100
|
||||||
|
@@ -76,8 +76,9 @@ static int skip_functions = 0, read_func
|
||||||
|
|
||||||
|
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;
|
||||||
|
+ char *p;
|
||||||
|
|
||||||
|
name_len = strlen(name);
|
||||||
|
|
||||||
|
@@ -85,7 +86,6 @@ static char *find_command_in_path(const
|
||||||
|
absolute_path_given = 0;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
- char *p;
|
||||||
|
absolute_path_given = 1;
|
||||||
|
|
||||||
|
if (abs_path)
|
||||||
|
@@ -159,6 +159,7 @@ static char *find_command_in_path(const
|
||||||
|
free(full_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ name = NULL; p = NULL; path_list = NULL;
|
||||||
|
return (found);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -540,7 +541,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))
|
46
SOURCES/which-2.21-path_max.patch
Normal file
46
SOURCES/which-2.21-path_max.patch
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
diff -up which-2.21/which.c.me which-2.21/which.c
|
||||||
|
--- which-2.21/which.c.me 2022-11-07 13:11:03.580798950 +0100
|
||||||
|
+++ which-2.21/which.c 2022-11-07 15:45:41.366085798 +0100
|
||||||
|
@@ -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,
|
||||||
|
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;
|
||||||
|
@@ -163,7 +168,7 @@ static char *find_command_in_path(const
|
||||||
|
return (found);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static char cwd[256];
|
||||||
|
+static char cwd[PATH_MAX];
|
||||||
|
static size_t cwdlen;
|
||||||
|
|
||||||
|
static void get_current_working_directory(void)
|
||||||
|
@@ -195,7 +200,7 @@ static void get_current_working_director
|
||||||
|
|
||||||
|
static char *path_clean_up(const char *path)
|
||||||
|
{
|
||||||
|
- static char result[256];
|
||||||
|
+ static char result[PATH_MAX];
|
||||||
|
|
||||||
|
const char *p1 = path;
|
||||||
|
char *p2 = result;
|
@ -1,7 +1,35 @@
|
|||||||
# Initialization script for bash and sh
|
# shellcheck shell=sh
|
||||||
|
# Initialization script for bash, sh, mksh and ksh
|
||||||
|
|
||||||
if [ "$0" = "ksh" ] || [ "$0" = "-ksh" ] ; then
|
|
||||||
alias which='(alias; typeset -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
|
if [ -r /proc/$$/exe ]; then
|
||||||
|
SHELLNAME=$(basename $(readlink /proc/$$/exe))
|
||||||
else
|
else
|
||||||
alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
|
SHELLNAME="unknown"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
case "$SHELLNAME" in
|
||||||
|
*ksh*)
|
||||||
|
which_declare=""
|
||||||
|
which_opt=""
|
||||||
|
;;
|
||||||
|
zsh)
|
||||||
|
which_declare="typeset -f"
|
||||||
|
which_opt=""
|
||||||
|
;;
|
||||||
|
bash|sh)
|
||||||
|
which_declare="declare -f"
|
||||||
|
which_opt="-f"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
which_declare=""
|
||||||
|
which_opt=""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
function which {
|
||||||
|
(alias; eval ${which_declare}) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
|
||||||
|
}
|
||||||
|
|
||||||
|
export which_declare
|
||||||
|
export ${which_opt} which
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
Summary: Displays where a particular program in your path is located
|
Summary: Displays where a particular program in your path is located
|
||||||
Name: which
|
Name: which
|
||||||
Version: 2.21
|
Version: 2.21
|
||||||
Release: 12%{?dist}
|
Release: 21%{?dist}
|
||||||
License: GPLv3
|
License: GPLv3
|
||||||
Source0: http://ftp.gnu.org/gnu/which/%{name}-%{version}.tar.gz
|
Source0: http://ftp.gnu.org/gnu/which/%{name}-%{version}.tar.gz
|
||||||
Source1: which2.sh
|
Source1: which2.sh
|
||||||
Source2: which2.csh
|
Source2: which2.csh
|
||||||
Patch0: which-2.21-coverity-fixes.patch
|
Patch0: which-2.21-coverity-fixes.patch
|
||||||
|
Patch1: which-2.21-coverity.patch
|
||||||
|
Patch2: which-2.21-path_max.patch
|
||||||
Url: https://savannah.gnu.org/projects/which/
|
Url: https://savannah.gnu.org/projects/which/
|
||||||
BuildRequires: gcc
|
Requires: coreutils
|
||||||
|
BuildRequires: gcc
|
||||||
BuildRequires: readline-devel
|
BuildRequires: readline-devel
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -18,6 +21,8 @@ the specified program is in your PATH.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1 -b .coverity
|
%patch0 -p1 -b .coverity
|
||||||
|
%patch1 -p1 -b .coverity2
|
||||||
|
%patch2 -p1 -b .path_max
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure
|
%configure
|
||||||
@ -39,6 +44,38 @@ rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
|||||||
%{_mandir}/man1/which.1*
|
%{_mandir}/man1/which.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jul 03 2025 Than Ngo <than@redhat.com> - 2.21-21
|
||||||
|
- Add a check to ensure that /proc/$$/exe can be read
|
||||||
|
thanks to mbliss@redhat.com for the report and the proposed patch
|
||||||
|
Resolves: RHEL-101069
|
||||||
|
|
||||||
|
* Wed Mar 22 2023 Than Ngo <than@redhat.com> - 2.21-20
|
||||||
|
- Related: #2140566, bring test over from Brew dist-git
|
||||||
|
|
||||||
|
* Tue Mar 21 2023 Than Ngo <than@redhat.com> - 2.21-19
|
||||||
|
- Resolves: #2140566, which fails for long path
|
||||||
|
|
||||||
|
* Mon Apr 11 2022 Than Ngo <than@redhat.com> - 2.21-18
|
||||||
|
- Resolves: #2044450 - custom profile generates shell error
|
||||||
|
|
||||||
|
* Thu Nov 25 2021 Than Ngo <than@redhat.com> - 2.21-17
|
||||||
|
- Resolves: #2025709, check shell correctly
|
||||||
|
- Resolves: #2009547, which treats function contents as aliases when parsing ksh
|
||||||
|
|
||||||
|
* Wed May 05 2021 Than Ngo <than@redhat.com> - 2.21-16
|
||||||
|
- Related: #1940468, fixed unbound variable
|
||||||
|
|
||||||
|
|
||||||
|
* Fri Apr 30 2021 Than Ngo <than@redhat.com> - 2.21-15
|
||||||
|
- Related: #1940468, fix error when the user runs which in bash with strict bash environment
|
||||||
|
|
||||||
|
* Tue Mar 23 2021 Than Ngo <than@redhat.com> - 2.21-14
|
||||||
|
- Related: #1940468, fix regression if SHELL=zsh
|
||||||
|
|
||||||
|
* Fri Mar 19 2021 Than Ngo <than@redhat.com> - 2.21-13
|
||||||
|
- Resolves: #1940468, fixed syntax error caused by testcase: a=b which ls
|
||||||
|
Coverity issue
|
||||||
|
|
||||||
* Tue Nov 19 2019 Than Ngo <than@redhat.com> - 2.21-12
|
* Tue Nov 19 2019 Than Ngo <than@redhat.com> - 2.21-12
|
||||||
- Fixed coverity issue
|
- Fixed coverity issue
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user