| # CVE-2008-1142 (rxvt 2.6.4 opens an xterm on :0 if the DISPLAY environment variable is not set, which might allow local users to hijack X11 connections.) |
| # Based on http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=41;filename=diff;att=1;bug=469296 |
| # bug 217819 |
| |
| diff -Naur rxvt-2.7.10.orig/rclock/rclock.c rxvt-2.7.10/rclock/rclock.c |
| --- rxvt-2.7.10.orig/rclock/rclock.c 2008-05-03 14:23:07.264082222 +0200 |
| +++ rxvt-2.7.10/rclock/rclock.c 2008-05-03 14:24:55.433082735 +0200 |
| @@ -324,9 +324,6 @@ |
| CheckMaildir(); |
| #endif |
| |
| - if ((display_name = getenv ("DISPLAY")) == NULL) |
| - display_name = ":0"; |
| - |
| /* parse the command line */ |
| for (i = 1; i < argc; i += 2) |
| { |
| @@ -424,7 +421,9 @@ |
| Xdisplay = XOpenDisplay (display_name); |
| if (!Xdisplay) |
| { |
| - print_error ("can't open display %s", display_name); |
| + print_error ("can't open display %s", display_name?display_name: |
| + getenv("DISPLAY")?getenv("DISPLAY"): |
| + "as no -d given and DISPLAY not set"); |
| goto Abort; |
| } |
| |
| diff -Naur rxvt-2.7.10.orig/src/init.c rxvt-2.7.10/src/init.c |
| --- rxvt-2.7.10.orig/src/init.c 2008-05-03 14:23:07.247082766 +0200 |
| +++ rxvt-2.7.10/src/init.c 2008-05-03 14:43:44.705227631 +0200 |
| @@ -532,8 +532,7 @@ |
| /* |
| * Open display, get options/resources and create the window |
| */ |
| - if ((rs[Rs_display_name] = getenv("DISPLAY")) == NULL) |
| - rs[Rs_display_name] = ":0"; |
| + rs[Rs_display_name] = getenv("DISPLAY"); |
| |
| rxvt_get_options(r, r_argc, r_argv); |
| free(r_argv); |
| @@ -550,7 +549,9 @@ |
| |
| if (r->Xdisplay == NULL |
| && (r->Xdisplay = XOpenDisplay(rs[Rs_display_name])) == NULL) { |
| - rxvt_print_error("can't open display %s", rs[Rs_display_name]); |
| + rxvt_print_error("can't open display %s", |
| + rs[Rs_display_name]?rs[Rs_display_name]: |
| + "as no -display option given and DISPLAY not set"); |
| exit(EXIT_FAILURE); |
| } |
| |