1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-27 07:41:28 -08:00
Commit graph

31759 commits

Author SHA1 Message Date
Paul Eggert
bf2da747e9 * process.c (Fnetwork_interface_list): Check for overflow
in size calculation.
2011-07-28 18:05:39 -07:00
Paul Eggert
1ef7689b97 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
Now ptrdiff_t, not int.
* nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
(ns_draw_fringe_bitmap): Rewrite to avoid overflow.
2011-07-28 18:04:51 -07:00
Paul Eggert
ea8a7d00f9 * minibuf.c (read_minibuf_noninteractive): Don't leak memory
on memory overflow.
2011-07-28 18:01:17 -07:00
Paul Eggert
c86960f076 * macros.c: Integer and memory overflow fixes.
(Fstart_kbd_macro): Don't update size until alloc done.
(store_kbd_macro_char): Reorder multiplicands to avoid overflow.
2011-07-28 18:00:29 -07:00
Paul Eggert
37d0112bcf * lread.c (read1, init_obarray): Don't update size until alloc done. 2011-07-28 17:59:16 -07:00
Paul Eggert
dbe2216bb6 * keymap.c: Integer overflow fixes.
(cmm_size, current_minor_maps): Use ptrdiff_t, not int, to count maps.
(current_minor_maps): Check for size calculation overflow.
* keymap.h: Change prototypes to match the above.
2011-07-28 17:32:09 -07:00
Paul Eggert
34db673b39 * keyboard.c: Integer and memory overflow fixes.
(read_char, menu_bar_items, tool_bar_items, read_char_x_menu_prompt)
(read_char_minibuf_menu_width, read_char_minibuf_menu_prompt)
(follow_key, read_key_sequence): Use ptrdiff_t, not int, to count maps.
(read_char_minibuf_menu_prompt): Check for overflow in size
calculations.  Don't update size until allocation succeeds.  Redo
calculations to avoid overflow.
* keyboard.h: Change prototypes to match the above.
2011-07-28 17:30:00 -07:00
Paul Eggert
ddff315164 * image.c: Integer and memory overflow fixes.
(RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these are duplicate
now that they've been promoted to lisp.h.
(x_allocate_bitmap_record, x_alloc_image_color)
(make_image_cache, cache_image, xpm_load):
Don't update size until alloc is done.
(xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
(x_detect_edges):
Check for size calculation overflow.
(ct_colors_allocated_max): New constant.
(x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
overflow.
2011-07-28 17:23:08 -07:00
Paul Eggert
0eb0f3187d * gtkutil.c: Integer overflow fixes.
(get_utf8_string, xg_store_widget_in_map):
Check for size-calculation overflow.
(get_utf8_string): Use ptrdiff_t, not size_t, where either will
do, as we prefer signed integers.
(id_to_widget.max_size, id_to_widget.used)
(xg_store_widget_in_map, xg_remove_widget_from_map)
(xg_get_widget_from_map, xg_get_scroll_id_for_window)
(xg_remove_scroll_bar, xg_update_scrollbar_pos):
Use and return ptrdiff_t, not int.
(xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
* gtkutil.h: Change prototypes to match the above.
2011-07-28 16:58:05 -07:00
Paul Eggert
1ffd9c92ea * ftfont.c: Check for size overflow.
(ftfont_get_open_type_spec, setup_otf_gstring, ftfont_shape_by_flt):
Check for integer overflow in size calculations.
2011-07-28 16:51:50 -07:00
Paul Eggert
483a9e21b6 * fringe.c (Fdefine_fringe_bitmap): Don't update size until alloc works. 2011-07-28 16:47:01 -07:00
Paul Eggert
2f64526875 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
This is for the members text_lines, text_cols, total_lines, total_cols,
where the system imposes an 'int' limit.
2011-07-28 14:51:29 -07:00
Paul Eggert
b8898fdae2 * frame.c: Integer overflow fixes.
(set_menu_bar_lines, x_set_frame_parameters, x_set_scroll_bar_width)
(x_figure_window_size): Check for integer overflow.
(x_set_alpha): Do not assume XINT fits in int.
2011-07-28 14:49:16 -07:00
Paul Eggert
98e8eae137 * eval.c: Integer and memory overflow fixes.
(init_eval_once, grow_specpdl): Don't update size until alloc succeeds.
(call_debugger, grow_specpdl): Redo calculations to avoid overflow.
2011-07-28 14:42:59 -07:00
Paul Eggert
b4fb63147a * emacs.c (main, sort_args): Check for size-calculation overflow. 2011-07-28 14:38:23 -07:00
Paul Eggert
c9f8d652ab * editfns.c: Integer and memory overflow fixes.
(set_time_zone_rule): Don't assume environment length fits in int.
(message_length): Now ptrdiff_t, not int.
(Fmessage_box): Don't update size until allocation succeeds.
Don't assume message length fits in int.
(Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
2011-07-28 14:37:15 -07:00
Paul Eggert
3d0c92a26b * doc.c: Integer and memory overflow fixes.
(get_doc_string_buffer_size): Now ptrdiff_t, not int.
(get_doc_string): Check for size calculation overflow.
Don't update size until allocation succeeds.
(get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
EMACS_INT, where ptrdiff_t will do.
(Fsubstitute_command_keys): Check for string overflow.
2011-07-28 14:34:39 -07:00
Paul Eggert
ca9ce8f2cb Integer and memory overflow fixes for display code.
* dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
* dispnew.c (adjust_glyph_matrix, realloc_glyph_pool, scrolling_window):
Check for overflow in size calculations.
(line_draw_cost, realloc_glyph_pool, add_row_entry):
Don't assume glyph table len fits in int.
(struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
(row_table_size): Now ptrdiff_t, not int.
(scrolling_window): Avoid overflow in size calculations.
Don't update size until allocation succeeds.
* fns.c (concat): Check for overflow in size calculations.
(next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
* lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
(NEXT_ALMOST_PRIME_LIMIT): New constant.
2011-07-28 14:31:33 -07:00
Paul Eggert
7bd4252299 Fix typo in comment. 2011-07-28 13:35:41 -07:00
Paul Eggert
d86d0d747f * composite.c: Integer overflow fixes.
(get_composition_id): Check for overflow in glyph length calculations.
2011-07-28 13:35:09 -07:00
Paul Eggert
5d009b3a6a * coding.c: Integer and memory overflow fixes.
(produce_chars): Redo buffer-overflow calculations to avoid
unnecessary integer overflow.  Check for size overflow.
(encode_coding_object): Don't update size until xmalloc succeeds.
2011-07-28 13:31:29 -07:00
Paul Eggert
17828df2d8 * character.c (Fstring): Check for size-calculation overflow. 2011-07-28 13:30:20 -07:00
Paul Eggert
69e8622f7f * ccl.c: Integer and memory overflow fixes.
(Fccl_execute_on_string): Check for memory overflow.
Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
Redo buffer-overflow calculations to avoid integer overflow.
2011-07-28 13:29:44 -07:00
Paul Eggert
860887db5c * callproc.c (child_setup): Don't assume strlen fits in int. 2011-07-28 13:29:09 -07:00
Paul Eggert
6e1fc4528b * buffer.c: Memory overflow fixes.
(overlays_at, overlays_in, record_overlay_string, overlay_strings):
Don't update size of array until after memory allocation succeeds,
because xmalloc/xrealloc may not return.
2011-07-28 13:28:33 -07:00
Paul Eggert
bc18e09ddf * bidi.c: Integer overflow fix.
(bidi_shelve_header_size): New constant.
(bidi_cache_ensure_space, bidi_shelve_cache): Use it.
(bidi_cache_ensure_space): Avoid integer overflow when allocating.
2011-07-28 13:27:41 -07:00
Paul Eggert
722e028b38 Fix incorrect comment. 2011-07-19 17:09:31 -07:00
Paul Eggert
ebfa62c014 Use ptrdiff_t for composition IDs.
* character.c (lisp_string_width):
* composite.c (composition_table_size, n_compositions)
(get_composition_id, composition_gstring_from_id):
* dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
* xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
* window.c (Frecenter):
Use ptrdiff_t, not int, for composition IDs.
* composite.c (get_composition_id): Check for integer overflow.
* composite.h: Adjust prototypes to match the above changes.
2011-07-19 14:39:36 -07:00
Paul Eggert
63cf7836ae Merge from intsign. 2011-07-19 13:37:27 -07:00
Paul Eggert
0d8de0fd0a Merge from trunk. 2011-07-19 13:33:28 -07:00
Paul Eggert
590bd46743 Port to OpenBSD.
See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
and the surrounding thread.
* minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
rather than fgets, and retry after EINTR.  Otherwise, 'emacs
--batch -f byte-compile-file' fails on OpenBSD if an inactivity
timer goes off.
* s/openbsd.h (BROKEN_SIGIO): Define.
* unexelf.c (unexec) [__OpenBSD__]:
Don't update the .mdebug section of the Alpha COFF symbol table.
2011-07-19 10:33:06 -07:00
Lars Magne Ingebrigtsen
f41628b253 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used 2011-07-19 17:16:58 +02:00
Paul Eggert
7403ff044d Merge from trunk. 2011-07-18 23:10:15 -07:00
Paul Eggert
d3411f89d3 Use ptrdiff_t for hash table indexes.
* category.c (hash_get_category_set):
* ccl.c (ccl_driver):
* charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
* coding.c (coding_system_charset_list, detect_coding_system):
* coding.h (struct coding_system.id):
* composite.c (get_composition_id, gstring_lookup_cache):
* fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
* image.c (xpm_get_color_table_h):
* lisp.h (hash_lookup, hash_put):
* minibuf.c (Ftest_completion):
Use ptrdiff_t for hash table indexes, not int (which is too
narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
32-bit --with-wide-int hosts).
2011-07-18 23:07:07 -07:00
Paul Eggert
e097a6fa86 * charset.c (Fdefine_charset_internal): Check for integer overflow.
Add a FIXME comment about memory leaks.
(syms_of_charset): Don't assume xmalloc returns.
2011-07-18 20:34:13 -07:00
Paul Eggert
5637687fea Don't assume that stated character widths fit in int.
* character.c (Fchar_width, c_string_width, lisp_string_width):
* character.h (CHAR_WIDTH):
* indent.c (MULTIBYTE_BYTES_WIDTH):
Use sanitize_char_width to avoid undefined and/or bad behavior
with outlandish widths.
* character.h (sanitize_tab_width): Renamed from sanitize_width,
now that we have two such functions.  All uses changed.
(sanitize_char_width): New inline function.
2011-07-18 17:42:24 -07:00
Paul Eggert
a2271ba210 Don't assume that tab-width fits in int.
* character.h (sanitize_width): New inline function.
(SANE_TAB_WIDTH): New macro.
(ASCII_CHAR_WIDTH): Use it.
* indent.c (sane_tab_width): Remove.  All uses replaced by
SANE_TAB_WIDTH (current_buffer).
* xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
2011-07-18 14:57:37 -07:00
Paul Eggert
18c5255701 * fileio.c: Integer overflow issues with file modes.
(Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
2011-07-18 14:08:22 -07:00
Paul Eggert
15e3a074a6 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
This fixes some race conditions on the permissions of any newly
created file.
2011-07-18 14:01:36 -07:00
Paul Eggert
41bed37d15 * alloc.c (valid_pointer_p): Use pipe, not open.
This fixes some permissions issues when debugging.
2011-07-18 13:24:40 -07:00
Paul Eggert
b59b67c56e * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
If fchown fails to set both uid and gid, try to set just gid,
as that is sometimes allowed.  Adjust the file's mode to eliminate
setuid or setgid bits that are inappropriate if fchown fails.
2011-07-18 10:21:18 -07:00
Paul Eggert
caeeedc1af * charset.c (read_hex): New arg OVERFLOW. All uses changed.
Remove unreachable code.
(read_hex, load_charset_map_from_file): Check for integer overflow.
2011-07-17 23:44:01 -07:00
Stefan Monnier
925a6be733 * src/xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
to compare Lisp_Objects.
* src/gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
global_gnutls_log_level, don't mistake it for a Lisp_Object.
(init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
2011-07-17 22:34:14 -04:00
Paul Eggert
50849c52f8 * xterm.c: don't go over XClientMessageEvent limit
(scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
(x_send_scroll_bar_event): Likewise.  Check that the size does not
exceed limits imposed by XClientMessageEvent, as well as the usual
ptrdiff_t and size_t limits.
2011-07-17 13:56:13 -07:00
Andreas Schwab
46cfea45c4 Fix last change 2011-07-17 12:35:42 +02:00
Andreas Schwab
0a6a104b85 Make read-symbol-positions-list more accurate
* src/lread.c (read_integer): Unread even EOF character.
(read1): Likewise.  Properly record start position of symbol.
2011-07-17 12:29:24 +02:00
Andreas Schwab
52968808d6 * src/lread.c (read1): Read `#:' as empty uninterned symbol if no
symbol character follows.
2011-07-17 10:00:53 +02:00
Paul Eggert
b13995dbbd * keyboard.c: Overflow, signedness and related fixes.
(make_lispy_movement): Use same integer type in forward decl
that is used in the definition.
(read_key_sequence, keyremap_step):
Change bufsize argument back to int, undoing my 2011-03-30 change.
We prefer signed types, and int is wide enough here.
(parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
than TYPE_MAXIMUM (EMACS_INT) / 2.  Don't let the label size grow
larger than STRING_BYTES_BOUND.  Use ptrdiff_t for Emacs string
length, not size_t.  Use ptrdiff_t for index, not int.
(keyremap_step, read_key_sequence): Redo bufsize check to avoid
possibility of integer overflow.
2011-07-16 20:00:19 -07:00
Paul Eggert
8d576a545d Merge from trunk. 2011-07-16 18:34:49 -07:00
Paul Eggert
c2216f8e3a Merge from trunk. 2011-07-16 18:33:46 -07:00