Accepting request 86081 from editors
- switch back to standard gcc, as bootstrapping gcc 4.3 on arm is essentially impossible, and 4.3 is not needed anymore (bnc#587307#c9) (forwarded request 86036 from dirkmueller) OBS-URL: https://build.opensuse.org/request/show/86081 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/emacs?expand=0&rev=69
This commit is contained in:
commit
262b8096c2
@ -1,90 +0,0 @@
|
||||
Description: Patch to fix temporary file vulnerability
|
||||
My approach is based on the premise that the make-temp-file function
|
||||
provided from Emacs 22 onwards is safe. So, I backport the method to
|
||||
the rst.el file, and bind it to the symbol rst--make-temp-file as
|
||||
follows:
|
||||
|
||||
- If the Emacs version is less than 22, use this custom version. This
|
||||
works on Emacs 21, I tested it.
|
||||
- If the Emacs version is 22 or more, bind rst--make-temp-file to the
|
||||
make-temp-fil provided in the Emacs Lisp libraries.
|
||||
|
||||
I don't see a solution for removing the temporary files, though.
|
||||
|
||||
I am no expert on security or Emacs Lisp, but I hope this patch
|
||||
provides a start.
|
||||
|
||||
Author: Kumar Appaiah <akumar@debian.org>
|
||||
Addopted due bug bnc#642787 for emacs 23.1 by Werner Fink <werner@suse.de>
|
||||
---
|
||||
|
||||
rst.el | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 46 insertions(+), 2 deletions(-)
|
||||
|
||||
--- lisp/textmodes/rst.el
|
||||
+++ lisp/textmodes/rst.el 2010-10-06 09:50:28.779926181 +0000
|
||||
@@ -3297,10 +3297,54 @@ or of the entire buffer, if the region i
|
||||
(defvar rst-pdf-program "xpdf"
|
||||
"Program used to preview PDF files.")
|
||||
|
||||
+(if (> emacs-major-version 22)
|
||||
+ (defalias 'rst--make-temp-file 'make-temp-file)
|
||||
+ (defvar temporary-file-directory)
|
||||
+ (defun rst--make-temp-file (prefix &optional dir-flag suffix)
|
||||
+ "Create a temporary file.
|
||||
+The returned file name (created by appending some random characters at the end
|
||||
+of PREFIX, and expanding against `temporary-file-directory' if necessary),
|
||||
+is guaranteed to point to a newly created empty file.
|
||||
+You can then use `write-region' to write new data into the file.
|
||||
+
|
||||
+If DIR-FLAG is non-nil, create a new empty directory instead of a file.
|
||||
+
|
||||
+If SUFFIX is non-nil, add that at the end of the file name."
|
||||
+ (let ((umask (default-file-modes))
|
||||
+ file)
|
||||
+ (unwind-protect
|
||||
+ (progn
|
||||
+ ;; Create temp files with strict access rights. It's easy to
|
||||
+ ;; loosen them later, whereas it's impossible to close the
|
||||
+ ;; time-window of loose permissions otherwise.
|
||||
+ (set-default-file-modes ?\700)
|
||||
+ (while (condition-case ()
|
||||
+ (progn
|
||||
+ (setq file
|
||||
+ (make-temp-name
|
||||
+ (if (zerop (length prefix))
|
||||
+ (file-name-as-directory
|
||||
+ temporary-file-directory)
|
||||
+ (expand-file-name prefix
|
||||
+ temporary-file-directory))))
|
||||
+ (if suffix
|
||||
+ (setq file (concat file suffix)))
|
||||
+ (if dir-flag
|
||||
+ (make-directory file)
|
||||
+ (write-region "" nil file nil 'silent nil 'excl))
|
||||
+ nil)
|
||||
+ (file-already-exists t))
|
||||
+ ;; the file was somehow created by someone else between
|
||||
+ ;; `make-temp-name' and `write-region', let's try again.
|
||||
+ nil)
|
||||
+ file)
|
||||
+ ;; Reset the umask.
|
||||
+ (set-default-file-modes umask)))))
|
||||
+
|
||||
(defun rst-compile-pdf-preview ()
|
||||
"Convert the document to a PDF file and launch a preview program."
|
||||
(interactive)
|
||||
- (let* ((tmp-filename "/tmp/out.pdf")
|
||||
+ (let* ((tmp-filename (rst--make-temp-file "rst" nil ".pdf"))
|
||||
(command (format "rst2pdf.py %s %s && %s %s"
|
||||
buffer-file-name tmp-filename
|
||||
rst-pdf-program tmp-filename)))
|
||||
@@ -3315,7 +3359,7 @@ or of the entire buffer, if the region i
|
||||
(defun rst-compile-slides-preview ()
|
||||
"Convert the document to an S5 slide presentation and launch a preview program."
|
||||
(interactive)
|
||||
- (let* ((tmp-filename "/tmp/slides.html")
|
||||
+ (let* ((tmp-filename (rst--make-temp-file "rst" nil ".html"))
|
||||
(command (format "rst2s5.py %s %s && %s %s"
|
||||
buffer-file-name tmp-filename
|
||||
rst-slides-program tmp-filename)))
|
@ -1,22 +0,0 @@
|
||||
--- src/ftfont.c
|
||||
+++ src/ftfont.c
|
||||
@@ -1262,7 +1262,7 @@ ftfont_open (f, entity, pixel_size)
|
||||
spacing = XINT (AREF (entity, FONT_SPACING_INDEX));
|
||||
else
|
||||
spacing = FC_PROPORTIONAL;
|
||||
- if (spacing != FC_PROPORTIONAL)
|
||||
+ if (spacing != FC_PROPORTIONAL && spacing != FC_DUAL)
|
||||
font->min_width = font->average_width = font->space_width
|
||||
= (scalable ? ft_face->max_advance_width * size / upEM
|
||||
: ft_face->size->metrics.max_advance >> 6);
|
||||
--- src/xftfont.c
|
||||
+++ src/xftfont.c
|
||||
@@ -418,7 +418,7 @@ xftfont_open (f, entity, pixel_size)
|
||||
ascii_printable[i] = ' ' + i;
|
||||
}
|
||||
BLOCK_INPUT;
|
||||
- if (spacing != FC_PROPORTIONAL)
|
||||
+ if (spacing != FC_PROPORTIONAL && spacing != FC_DUAL)
|
||||
{
|
||||
font->min_width = font->average_width = font->space_width
|
||||
= xftfont->max_advance_width;
|
@ -1,286 +0,0 @@
|
||||
--- lib-src/pop.c
|
||||
+++ lib-src/pop.c 2010-03-17 14:07:56.000000000 +0000
|
||||
@@ -28,6 +28,7 @@ along with GNU Emacs. If not, see <http
|
||||
|
||||
#ifdef MAIL_USE_POP
|
||||
|
||||
+#include <ctype.h>
|
||||
#include <sys/types.h>
|
||||
#ifdef WINDOWSNT
|
||||
#include "ntlib.h"
|
||||
@@ -1232,9 +1233,10 @@ socket_connection (host, flags)
|
||||
|
||||
for (cp = realhost; *cp; cp++)
|
||||
{
|
||||
- if (isupper (*cp))
|
||||
+ const int c = *cp;
|
||||
+ if (isupper (c))
|
||||
{
|
||||
- *cp = tolower (*cp);
|
||||
+ *cp = tolower (c);
|
||||
}
|
||||
}
|
||||
|
||||
--- oldXMenu/Error.c
|
||||
+++ oldXMenu/Error.c 2010-03-17 13:48:49.000000000 +0000
|
||||
@@ -1,5 +1,6 @@
|
||||
/* Copyright Massachusetts Institute of Technology 1985 */
|
||||
|
||||
+#include <stdio.h>
|
||||
#include "copyright.h"
|
||||
|
||||
|
||||
--- src/ccl.c
|
||||
+++ src/ccl.c 2010-10-18 14:23:42.000000000 +0000
|
||||
@@ -27,6 +27,9 @@ along with GNU Emacs. If not, see <http
|
||||
#include <config.h>
|
||||
|
||||
#include <stdio.h>
|
||||
+#ifdef HAVE_UNISTD_H
|
||||
+#include <unistd.h>
|
||||
+#endif
|
||||
#include <setjmp.h>
|
||||
|
||||
#include "lisp.h"
|
||||
--- src/charset.c
|
||||
+++ src/charset.c 2010-03-18 09:41:45.000000000 +0000
|
||||
@@ -274,7 +274,7 @@ load_charset_map (charset, entries, n_en
|
||||
int n_entries;
|
||||
int control_flag;
|
||||
{
|
||||
- Lisp_Object vec, table;
|
||||
+ Lisp_Object vec = 0, table = 0;
|
||||
unsigned max_code = CHARSET_MAX_CODE (charset);
|
||||
int ascii_compatible_p = charset->ascii_compatible_p;
|
||||
int min_char, max_char, nonascii_min_char;
|
||||
@@ -658,7 +658,7 @@ load_charset (charset, control_flag)
|
||||
struct charset *charset;
|
||||
int control_flag;
|
||||
{
|
||||
- Lisp_Object map;
|
||||
+ Lisp_Object map = 0;
|
||||
|
||||
if (inhibit_load_charset_map
|
||||
&& temp_charset_work
|
||||
--- src/cm.c
|
||||
+++ src/cm.c 2010-03-18 09:45:28.000000000 +0000
|
||||
@@ -34,13 +34,6 @@ along with GNU Emacs. If not, see <http
|
||||
configure finds a non-standard termcap.h that the main build
|
||||
won't find. */
|
||||
|
||||
-#if defined HAVE_TERMCAP_H && 0
|
||||
-#include <termcap.h>
|
||||
-#else
|
||||
-extern void tputs P_ ((const char *, int, int (*)(int)));
|
||||
-extern char *tgoto P_ ((const char *, int, int));
|
||||
-#endif
|
||||
-
|
||||
#define BIG 9999 /* 9999 good on VAXen. For 16 bit machines
|
||||
use about 2000.... */
|
||||
|
||||
@@ -340,7 +333,7 @@ cmgoto (tty, row, col)
|
||||
llcost,
|
||||
relcost,
|
||||
directcost;
|
||||
- int use;
|
||||
+ int use = 0;
|
||||
char *p,
|
||||
*dcm;
|
||||
|
||||
--- src/cm.h
|
||||
+++ src/cm.h 2010-03-18 08:15:28.000000000 +0000
|
||||
@@ -160,7 +160,17 @@ extern char PC; /* Pad character */
|
||||
extern int cost;
|
||||
extern int evalcost ();
|
||||
|
||||
-#define emacs_tputs(tty, str, affcnt, putc) (current_tty = (tty), tputs (str, affcnt, putc))
|
||||
+#if defined HAVE_TERMCAP_H && 0
|
||||
+#include <termcap.h>
|
||||
+#else
|
||||
+/*
|
||||
+ * #include <curses.h>
|
||||
+ * #include <term.h>
|
||||
+ */
|
||||
+extern int tputs P_ ((const char *, int, int (*)(int)));
|
||||
+extern char *tgoto P_ ((const char *, int, int));
|
||||
+#endif
|
||||
+#define emacs_tputs(tty, str, affcnt, putc) ({ current_tty = (tty); (void)tputs (str, affcnt, putc); })
|
||||
|
||||
extern struct tty_display_info *current_tty;
|
||||
extern void cmcheckmagic P_ ((struct tty_display_info *));
|
||||
--- src/coding.c
|
||||
+++ src/coding.c 2010-03-18 09:44:45.000000000 +0000
|
||||
@@ -3084,7 +3084,7 @@ detect_coding_iso_2022 (coding, detect_i
|
||||
const unsigned char *src_end = coding->source + coding->src_bytes;
|
||||
int multibytep = coding->src_multibyte;
|
||||
int single_shifting = 0;
|
||||
- int id;
|
||||
+ int id = 0;
|
||||
int c, c1;
|
||||
int consumed_chars = 0;
|
||||
int i;
|
||||
@@ -3601,7 +3601,7 @@ decode_coding_iso_2022 (coding)
|
||||
int charset_id_0 = CODING_ISO_INVOKED_CHARSET (coding, 0);
|
||||
int charset_id_1 = CODING_ISO_INVOKED_CHARSET (coding, 1);
|
||||
int charset_id_2, charset_id_3;
|
||||
- struct charset *charset;
|
||||
+ struct charset *charset = (struct charset*)0;
|
||||
int c;
|
||||
struct composition_status *cmp_status = CODING_ISO_CMP_STATUS (coding);
|
||||
Lisp_Object attrs, charset_list;
|
||||
@@ -5613,7 +5613,7 @@ decode_coding_charset (coding)
|
||||
{
|
||||
int c;
|
||||
Lisp_Object val;
|
||||
- struct charset *charset;
|
||||
+ struct charset *charset = (struct charset*)0;
|
||||
int dim;
|
||||
int len = 1;
|
||||
unsigned code;
|
||||
@@ -7817,12 +7817,12 @@ decode_coding_object (coding, src_object
|
||||
Lisp_Object dst_object;
|
||||
{
|
||||
int count = specpdl_ptr - specpdl;
|
||||
- unsigned char *destination;
|
||||
- EMACS_INT dst_bytes;
|
||||
+ unsigned char *destination = (unsigned char*)0;
|
||||
+ EMACS_INT dst_bytes = 0;
|
||||
EMACS_INT chars = to - from;
|
||||
EMACS_INT bytes = to_byte - from_byte;
|
||||
Lisp_Object attrs;
|
||||
- int saved_pt = -1, saved_pt_byte;
|
||||
+ int saved_pt = -1, saved_pt_byte = 0;
|
||||
int need_marker_adjustment = 0;
|
||||
Lisp_Object old_deactivate_mark;
|
||||
|
||||
@@ -8011,7 +8011,7 @@ encode_coding_object (coding, src_object
|
||||
EMACS_INT chars = to - from;
|
||||
EMACS_INT bytes = to_byte - from_byte;
|
||||
Lisp_Object attrs;
|
||||
- int saved_pt = -1, saved_pt_byte;
|
||||
+ int saved_pt = -1, saved_pt_byte = 0;
|
||||
int need_marker_adjustment = 0;
|
||||
int kill_src_buffer = 0;
|
||||
Lisp_Object old_deactivate_mark;
|
||||
@@ -8351,8 +8351,8 @@ detect_coding_system (src, src_chars, sr
|
||||
base_category = XINT (CODING_ATTR_CATEGORY (attrs));
|
||||
if (base_category == coding_category_undecided)
|
||||
{
|
||||
- enum coding_category category;
|
||||
- struct coding_system *this;
|
||||
+ enum coding_category category = 0;
|
||||
+ struct coding_system *this = (struct coding_system*)0;
|
||||
int c, i;
|
||||
|
||||
/* Skip all ASCII bytes except for a few ISO2022 controls. */
|
||||
--- src/fns.c
|
||||
+++ src/fns.c 2010-03-17 13:48:07.000000000 +0000
|
||||
@@ -21,6 +21,7 @@ along with GNU Emacs. If not, see <http
|
||||
|
||||
#include <config.h>
|
||||
|
||||
+#include <stdio.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
--- src/font.c
|
||||
+++ src/font.c 2010-03-18 09:34:23.000000000 +0000
|
||||
@@ -1493,7 +1493,7 @@ font_parse_fcname (name, font)
|
||||
else
|
||||
{
|
||||
/* KEY=VAL pairs */
|
||||
- Lisp_Object key;
|
||||
+ Lisp_Object key = (Lisp_Object)0;
|
||||
int prop;
|
||||
|
||||
if (q - p == 10 && memcmp (p + 1, "pixelsize", 9) == 0)
|
||||
@@ -1657,7 +1657,7 @@ font_unparse_fcname (font, pixel_size, n
|
||||
{
|
||||
Lisp_Object family, foundry;
|
||||
Lisp_Object tail, val;
|
||||
- int point_size;
|
||||
+ int point_size = 0;
|
||||
int i, len = 1;
|
||||
char *p;
|
||||
Lisp_Object styles[3];
|
||||
--- src/keyboard.c
|
||||
+++ src/keyboard.c 2010-03-18 09:25:59.000000000 +0000
|
||||
@@ -3063,7 +3063,7 @@ read_char (commandflag, nmaps, maps, pre
|
||||
|
||||
if (NILP (c))
|
||||
{
|
||||
- KBOARD *kb;
|
||||
+ KBOARD *kb = (KBOARD*)0;
|
||||
|
||||
if (end_time)
|
||||
{
|
||||
@@ -4603,7 +4603,7 @@ static EMACS_TIME
|
||||
timer_check_2 ()
|
||||
{
|
||||
EMACS_TIME nexttime;
|
||||
- EMACS_TIME now, idleness_now;
|
||||
+ EMACS_TIME now, idleness_now = {0,0};
|
||||
Lisp_Object timers, idle_timers, chosen_timer;
|
||||
struct gcpro gcpro1, gcpro2, gcpro3;
|
||||
|
||||
@@ -4640,7 +4640,7 @@ timer_check_2 ()
|
||||
Lisp_Object *vector;
|
||||
Lisp_Object timer = Qnil, idle_timer = Qnil;
|
||||
EMACS_TIME timer_time, idle_timer_time;
|
||||
- EMACS_TIME difference, timer_difference, idle_timer_difference;
|
||||
+ EMACS_TIME difference, timer_difference = {0,0}, idle_timer_difference = {0,0};
|
||||
|
||||
/* Skip past invalid timers and timers already handled. */
|
||||
if (!NILP (timers))
|
||||
--- src/md5.c
|
||||
+++ src/md5.c 2010-03-17 13:51:36.000000000 +0000
|
||||
@@ -26,6 +26,7 @@
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
+#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#if STDC_HEADERS || defined _LIBC
|
||||
--- src/syntax.c
|
||||
+++ src/syntax.c 2010-03-18 09:35:22.000000000 +0000
|
||||
@@ -492,7 +492,7 @@ back_comment (from, from_byte, stop, com
|
||||
EMACS_INT comment_end = from;
|
||||
EMACS_INT comment_end_byte = from_byte;
|
||||
EMACS_INT comstart_pos = 0;
|
||||
- EMACS_INT comstart_byte;
|
||||
+ EMACS_INT comstart_byte = 0;
|
||||
/* Place where the containing defun starts,
|
||||
or 0 if we didn't come across it yet. */
|
||||
EMACS_INT defun_start = 0;
|
||||
@@ -1411,7 +1411,7 @@ skip_chars (forwardp, string, lim, handl
|
||||
register unsigned int c;
|
||||
unsigned char fastmap[0400];
|
||||
/* Store the ranges of non-ASCII characters. */
|
||||
- int *char_ranges;
|
||||
+ int *char_ranges = (int*)0;
|
||||
int n_char_ranges = 0;
|
||||
int negate = 0;
|
||||
register int i, i_byte;
|
||||
--- src/term.c
|
||||
+++ src/term.c 2010-03-18 08:56:45.000000000 +0000
|
||||
@@ -70,7 +70,6 @@ static int been_here = -1;
|
||||
#if defined HAVE_TERMCAP_H && 0
|
||||
#include <termcap.h>
|
||||
#else
|
||||
-extern void tputs P_ ((const char *, int, int (*)(int)));
|
||||
extern int tgetent P_ ((char *, const char *));
|
||||
extern int tgetflag P_ ((char *id));
|
||||
extern int tgetnum P_ ((char *id));
|
||||
--- src/unexhp9k800.c
|
||||
+++ src/unexhp9k800.c 2010-03-17 13:52:29.000000000 +0000
|
||||
@@ -54,6 +54,9 @@
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
+#ifdef HAVE_UNISTD_H
|
||||
+#include <unistd.h>
|
||||
+#endif
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Oct 2 14:36:52 CEST 2011 - dmueller@suse.de
|
||||
|
||||
- switch back to standard gcc, as bootstrapping gcc 4.3 on
|
||||
arm is essentially impossible, and 4.3 is not needed anymore
|
||||
(bnc#587307#c9)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Sep 18 17:17:12 UTC 2011 - jengelh@medozas.de
|
||||
|
||||
|
@ -19,7 +19,6 @@
|
||||
|
||||
Name: emacs
|
||||
BuildRequires: alsa-devel bind-devel dbus-1-devel elfutils fdupes fonts-config freetype2-devel gconf2-devel giflib-devel gtk2-devel krb5-devel libjpeg-devel libotf-devel libpng-devel librsvg-devel libtiff-devel m17n-lib-devel ncurses-devel nmh sendmail texinfo update-desktop-files xaw3d-devel xorg-x11-devel
|
||||
BuildRequires: gcc43
|
||||
%if 0%{?suse_version} > 1130
|
||||
BuildRequires: gpm-devel
|
||||
%else
|
||||
@ -58,7 +57,6 @@ Patch13: emacs-23.3-s390x.dif
|
||||
Patch15: emacs-22.2-iconic.patch
|
||||
Patch16: emacs-23.1-flyspell.patch
|
||||
Patch18: emacs-sparc.diff
|
||||
Patch20: emacs-23.3-gcc45.dif
|
||||
Patch22: emacs-23.1-bnc628268.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
%global bug_345669 0
|
||||
@ -169,11 +167,9 @@ modes.
|
||||
if test ! -e $HOME/.mh_profile && type -p install-mh > /dev/null 2>&1; then
|
||||
install-mh -auto < /dev/null
|
||||
fi
|
||||
%patch20 -p0 -b .gcc45
|
||||
%patch22
|
||||
|
||||
%build
|
||||
CC=gcc-4.3
|
||||
cflags ()
|
||||
{
|
||||
local flag=$1; shift
|
||||
|
Loading…
x
Reference in New Issue
Block a user