Contents of /trunk/bash/patches/bash-4.3-fix-setuid.patch
Parent Directory | Revision Log
Revision 2438 -
(show annotations)
(download)
Wed Jun 11 07:12:40 2014 UTC (10 years, 3 months ago) by niro
File size: 890 byte(s)
Wed Jun 11 07:12:40 2014 UTC (10 years, 3 months ago) by niro
File size: 890 byte(s)
-added security fix
1 | diff --git shell.c shell.c |
2 | index bbc8a66..5bfd466 100644 |
3 | --- shell.c |
4 | +++ shell.c |
5 | @@ -1226,8 +1226,12 @@ uidget () |
6 | void |
7 | disable_priv_mode () |
8 | { |
9 | - setuid (current_user.uid); |
10 | - setgid (current_user.gid); |
11 | + |
12 | + if( (setuid (current_user.uid) !=0) || (setgid (current_user.gid) != 0) ){ |
13 | + report_error("Drop privileges failed!!\n"); |
14 | + exit(EX_DROPFAIL); |
15 | + } |
16 | + |
17 | current_user.euid = current_user.uid; |
18 | current_user.egid = current_user.gid; |
19 | } |
20 | diff --git shell.h shell.h |
21 | index 243e467..c3625be 100644 |
22 | --- shell.h |
23 | +++ shell.h |
24 | @@ -72,6 +72,7 @@ extern int EOF_Reached; |
25 | #define EX_REDIRFAIL 259 /* redirection failed */ |
26 | #define EX_BADASSIGN 260 /* variable assignment error */ |
27 | #define EX_EXPFAIL 261 /* word expansion failed */ |
28 | +#define EX_DROPFAIL 262 /* Drop privileges failed */ |
29 | |
30 | /* Flag values that control parameter pattern substitution. */ |
31 | #define MATCH_ANY 0x000 |