Sanitize public header file <shell.h>

Resolves: #1736676
This commit is contained in:
Kamil Dudka 2019-08-02 17:27:25 +02:00
parent aaa1a2fee3
commit 1f2779c938
2 changed files with 24 additions and 29 deletions

View File

@ -143,7 +143,7 @@ diff --git a/execute_cmd.c b/execute_cmd.c
index 8b3c83a..4eae19c 100644 index 8b3c83a..4eae19c 100644
--- a/execute_cmd.c --- a/execute_cmd.c
+++ b/execute_cmd.c +++ b/execute_cmd.c
@@ -538,6 +538,8 @@ async_redirect_stdin () @@ -542,6 +542,8 @@ async_redirect_stdin ()
#define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0) #define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0)
@ -152,7 +152,7 @@ index 8b3c83a..4eae19c 100644
/* Execute the command passed in COMMAND, perhaps doing it asynchronously. /* Execute the command passed in COMMAND, perhaps doing it asynchronously.
COMMAND is exactly what read_command () places into GLOBAL_COMMAND. COMMAND is exactly what read_command () places into GLOBAL_COMMAND.
ASYNCHROUNOUS, if non-zero, says to do this command in the background. ASYNCHROUNOUS, if non-zero, says to do this command in the background.
@@ -569,7 +571,13 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, @@ -573,7 +575,13 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out,
if (breaking || continuing) if (breaking || continuing)
return (last_command_exit_value); return (last_command_exit_value);
@ -167,7 +167,7 @@ index 8b3c83a..4eae19c 100644
return (EXECUTION_SUCCESS); return (EXECUTION_SUCCESS);
QUIT; QUIT;
@@ -2813,7 +2821,7 @@ execute_for_command (for_command) @@ -2819,7 +2827,7 @@ execute_for_command (for_command)
save_line_number = line_number; save_line_number = line_number;
if (check_identifier (for_command->name, 1) == 0) if (check_identifier (for_command->name, 1) == 0)
{ {
@ -194,7 +194,16 @@ diff --git a/make_cmd.c b/make_cmd.c
index ecbbfd6..3d8bfa4 100644 index ecbbfd6..3d8bfa4 100644
--- a/make_cmd.c --- a/make_cmd.c
+++ b/make_cmd.c +++ b/make_cmd.c
@@ -828,6 +828,27 @@ make_coproc_command (name, command) @@ -35,6 +35,8 @@
#include "bashintl.h"
#include "shell.h"
+#include "builtins.h"
+#include "builtins/common.h"
#include "execute_cmd.h"
#include "parser.h"
#include "flags.h"
@@ -828,6 +830,30 @@ make_coproc_command (name, command)
return (make_command (cm_coproc, (SIMPLE_COM *)temp)); return (make_command (cm_coproc, (SIMPLE_COM *)temp));
} }
@ -203,6 +212,9 @@ index ecbbfd6..3d8bfa4 100644
+const char *deptype; +const char *deptype;
+char *filename; +char *filename;
+{ +{
+ static char *alphabet_set = "abcdefghijklmnopqrstuvwxyz"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ if (strchr(filename, '$') || (filename[0] != '/' && strchr(filename, '/'))) + if (strchr(filename, '$') || (filename[0] != '/' && strchr(filename, '/')))
+ return; + return;
+ +
@ -222,7 +234,7 @@ index ecbbfd6..3d8bfa4 100644
/* Reverse the word list and redirection list in the simple command /* Reverse the word list and redirection list in the simple command
has just been parsed. It seems simpler to do this here the one has just been parsed. It seems simpler to do this here the one
time then by any other method that I can think of. */ time then by any other method that I can think of. */
@@ -845,6 +866,28 @@ clean_simple_command (command) @@ -845,6 +871,28 @@ clean_simple_command (command)
REVERSE_LIST (command->value.Simple->redirects, REDIRECT *); REVERSE_LIST (command->value.Simple->redirects, REDIRECT *);
} }
@ -290,32 +302,11 @@ diff --git a/shell.h b/shell.h
index 8072605..6c4149d 100644 index 8072605..6c4149d 100644
--- a/shell.h --- a/shell.h
+++ b/shell.h +++ b/shell.h
@@ -34,12 +34,15 @@ @@ -99,6 +99,7 @@ extern int interactive, interactive_shell;
#include "maxpath.h"
#include "unwind_prot.h"
#include "dispose_cmd.h"
+#include "execute_cmd.h"
#include "make_cmd.h"
#include "ocache.h"
#include "subst.h"
#include "sig.h"
#include "pathnames.h"
#include "externs.h"
+#include "builtins.h"
+#include "builtins/common.h"
extern int EOF_Reached;
@@ -99,6 +102,9 @@ extern int interactive, interactive_shell;
extern int startup_state; extern int startup_state;
extern int reading_shell_script; extern int reading_shell_script;
extern int shell_initialized; extern int shell_initialized;
+extern int rpm_requires; +extern int rpm_requires;
+static char *alphabet_set = "abcdefghijklmnopqrstuvwxyz"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
extern int bash_argv_initialized; extern int bash_argv_initialized;
extern int subshell_environment; extern int subshell_environment;
extern int current_command_number; extern int current_command_number;
--
2.17.2

View File

@ -6,13 +6,13 @@
Version: %{baseversion}%{patchleveltag} Version: %{baseversion}%{patchleveltag}
Name: bash Name: bash
Summary: The GNU Bourne Again shell Summary: The GNU Bourne Again shell
Release: 2%{?dist} Release: 3%{?dist}
License: GPLv3+ License: GPLv3+
Url: https://www.gnu.org/software/bash Url: https://www.gnu.org/software/bash
Source0: https://ftp.gnu.org/gnu/bash/bash-%{baseversion}.tar.gz Source0: https://ftp.gnu.org/gnu/bash/bash-%{baseversion}.tar.gz
# For now there isn't any doc # For now there isn't any doc
#Source2: ftp://ftp.gnu.org/gnu/bash/bash-doc-%{version}.tar.gz #Source2: ftp://ftp.gnu.org/gnu/bash/bash-doc-%%{version}.tar.gz
Source1: dot-bashrc Source1: dot-bashrc
Source2: dot-bash_profile Source2: dot-bash_profile
@ -308,6 +308,10 @@ end
%{_libdir}/pkgconfig/%{name}.pc %{_libdir}/pkgconfig/%{name}.pc
%changelog %changelog
* Fri Aug 02 2019 Kamil Dudka <kdudka@redhat.com> - 5.0.7-3
- Sanitize public header file <shell.h>
Resolves: #1736676
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.7-2 * Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.0.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild