Bug#770222: NMU uploaded to DELAYED-3
Simon Richter
Simon.Richter at hogyros.de
Sun Nov 23 19:11:59 UTC 2014
diff -Nru icecast2-2.4.0/debian/changelog icecast2-2.4.0/debian/changelog
--- icecast2-2.4.0/debian/changelog 2014-09-01 17:03:14.000000000 +0200
+++ icecast2-2.4.0/debian/changelog 2014-11-23 20:04:08.000000000 +0100
@@ -1,3 +1,11 @@
+icecast2 (2.4.0-1.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Include patchset 19313 (close file handles for external scripts).
+ (Closes: #770222)
+
+ -- Simon Richter <sjr at debian.org> Sun, 23 Nov 2014 20:02:58 +0100
+
icecast2 (2.4.0-1) unstable; urgency=medium
* Imported Upstream version 2.4.0
diff -Nru
icecast2-2.4.0/debian/patches/0001-disconnects_stdio_of_on_dis_connect_scripts_from_random_filehandles
icecast2-2.4.0/debian/patches/0001-disconnects_stdio_of_on_dis_connect_scripts_from_random_filehandles
---
icecast2-2.4.0/debian/patches/0001-disconnects_stdio_of_on_dis_connect_scripts_from_random_filehandles
1970-01-01 01:00:00.000000000 +0100
+++
icecast2-2.4.0/debian/patches/0001-disconnects_stdio_of_on_dis_connect_scripts_from_random_filehandles
2014-11-23 20:07:33.000000000 +0100
@@ -0,0 +1,80 @@
+Index: icecast2-2.4.0/src/source.c
+===================================================================
+--- icecast2-2.4.0.orig/src/source.c
++++ icecast2-2.4.0/src/source.c
+@@ -34,6 +34,12 @@
+ #define snprintf _snprintf
+ #endif
+
++#ifndef _WIN32
++/* for __setup_empty_script_environment() */
++#include <sys/stat.h>
++#include <fcntl.h>
++#endif
++
+ #include "thread/thread.h"
+ #include "avl/avl.h"
+ #include "httpp/httpp.h"
+@@ -1311,6 +1317,34 @@ void source_client_callback (client_t *c
+
+
+ #ifndef _WIN32
++/* this sets up the new environment for script execution.
++ * We ignore most failtures as we can not handle them anyway.
++ */
++static inline void __setup_empty_script_environment(void) {
++ int i;
++
++ /* close at least the first 1024 handles */
++ for (i = 0; i < 1024; i++)
++ close(i);
++
++ /* open null device */
++ i = open("/dev/null", O_RDWR);
++ if (i != -1) {
++ /* attach null device to stdin, stdout and stderr */
++ if (i != 0)
++ dup2(i, 0);
++ if (i != 1)
++ dup2(i, 1);
++ if (i != 2)
++ dup2(i, 2);
++
++ /* close null device */
++ if (i > 2)
++ close(i);
++ }
++}
++#endif
++
+ static void source_run_script (char *command, char *mountpoint)
+ {
+ pid_t pid, external_pid;
+@@ -1326,10 +1360,15 @@ static void source_run_script (char *com
+ ERROR2 ("Unable to fork %s (%s)", command,
strerror (errno));
+ break;
+ case 0: /* child */
++ if (access(command, R_OK|X_OK) != 0) {
++ ERROR2 ("Unable to run command %s (%s)",
command, strerror(errno));
++ exit(1);
++ }
+ DEBUG1 ("Starting command %s", command);
+- execl (command, command, mountpoint, (char *)NULL);
+- ERROR2 ("Unable to run command %s (%s)", command,
strerror (errno));
+- exit(0);
++ __setup_empty_script_environment();
++ /* consider to add action here as well */
++ execl(command, command, mountpoint, (char *)NULL);
++ exit(1);
+ default: /* parent */
+ break;
+ }
+@@ -1342,8 +1381,6 @@ static void source_run_script (char *com
+ break;
+ }
+ }
+-#endif
+-
+
+ static void *source_fallback_file (void *arg)
+ {
diff -Nru icecast2-2.4.0/debian/patches/series
icecast2-2.4.0/debian/patches/series
--- icecast2-2.4.0/debian/patches/series 1970-01-01
01:00:00.000000000 +0100
+++ icecast2-2.4.0/debian/patches/series 2014-11-23
19:52:21.000000000 +0100
@@ -0,0 +1 @@
+0001-disconnects_stdio_of_on_dis_connect_scripts_from_random_filehandles
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 299 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20141123/1b9d64f4/attachment.sig>
More information about the pkg-multimedia-maintainers
mailing list