]> git.pld-linux.org Git - packages/slang.git/blob - slang-security.patch
- remove unused paths from searching terminfo searching paths
[packages/slang.git] / slang-security.patch
1 --- slang-1.4.5/src/sltermin.c.orig     Sun Feb 10 08:39:20 2002
2 +++ slang-1.4.5/src/sltermin.c  Wed Feb 27 02:27:57 2002
3 @@ -105,7 +105,31 @@
4      * I will also look into the use of setreuid, seteuid and setregid, setegid.
5      * FIXME: Priority=medium
6      */
7 +    /* If your system lacks setfsuid/getfsuid either write
8 +       equivalent support or dont use slang to build setuid/setgid
9 +       apps like Mutt */
10
11 +   if(setfsuid(getuid())==-1)
12 +   {
13 +       perror("setfsuid");
14 +       return NULL;
15 +   }
16 +   if(setfsgid(getgid())==-1)
17 +   {
18 +       perror("setfsgid");
19 +       return NULL;
20 +   }
21     fp = fopen (file, "rb");
22 +   if(setfsuid(geteuid())==-1)
23 +   {
24 +       perror("setfsuid");
25 +       return NULL;
26 +   }
27 +   if(setfsgid(getegid())==-1)
28 +   {
29 +       perror("setfsgid");
30 +       return NULL;
31 +   }
32     if (fp == NULL) return NULL;
33  
34     if ((12 == fread ((char *) buf, 1, 12, fp) && (MAGIC == make_integer (buf))))
35 @@ -285,7 +309,7 @@
36  
37              if (sizeof (file) > strlen (tidir) + 2 + strlen (term))
38                {
39 -                 sprintf (file, "%s/%c/%s", tidir, *term, term);
40 +                 snprintf (file, sizeof (file), "%s/%c/%s", tidir, *term, term);
41                   if (NULL != (fp = open_terminfo (file, ti)))
42                     break;
43                }
This page took 0.05671 seconds and 3 git commands to generate.