Initialize for bash
This commit is contained in:
commit
e367703cd4
44 changed files with 5010 additions and 0 deletions
51
bash-4.2-nscdunmap.dif
Normal file
51
bash-4.2-nscdunmap.dif
Normal file
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
shell.c | 24 ++++++++++++++++++++++++
|
||||
1 file changed, 24 insertions(+)
|
||||
|
||||
--- shell.c
|
||||
+++ shell.c 2016-09-14 08:54:32.971258862 +0000
|
||||
@@ -43,6 +43,7 @@
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
+# include <sys/types.h>
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
@@ -1751,6 +1752,28 @@ init_interactive_script ()
|
||||
#endif
|
||||
}
|
||||
|
||||
+static void
|
||||
+maybe_unmap_nscd (void)
|
||||
+{
|
||||
+ unsigned long start, end, off;
|
||||
+ char path[PATH_MAX];
|
||||
+ FILE *maps;
|
||||
+
|
||||
+ if (getppid() != 1)
|
||||
+ return;
|
||||
+ if ((maps = fopen("/proc/self/maps", "r")) == NULL)
|
||||
+ return;
|
||||
+
|
||||
+ while (fscanf(maps, "%lx-%lx %*s %lx %*x:%*x %*lu %s", &start, &end, &off, &path[0]) == 4)
|
||||
+ {
|
||||
+ if (strncmp(path, "/var/run/nscd/", 14) != 0)
|
||||
+ continue;
|
||||
+ munmap((void*)start, end - start);
|
||||
+ }
|
||||
+
|
||||
+ fclose(maps);
|
||||
+}
|
||||
+
|
||||
void
|
||||
get_current_user_info ()
|
||||
{
|
||||
@@ -1782,6 +1805,7 @@ get_current_user_info ()
|
||||
#if defined (HAVE_GETPWENT)
|
||||
endpwent ();
|
||||
#endif
|
||||
+ maybe_unmap_nscd ();
|
||||
}
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue