aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog (follow)
Commit message (Collapse)AuthorAgeFilesLines
* * termcap.c: Integer and memory overflow issues.Paul Eggert2011-07-281-0/+6
| | | | | | | (tgetent): Use ptrdiff_t, not int, to record results of subtracting pointers. (gobble_line): Check for overflow more carefully. Don't update size until alloc done.
* * term.c: Integer and memory overflow issues.Paul Eggert2011-07-281-0/+11
| | | | | | | | | | | | (max_frame_lines): Remove; unused. (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t, not int. (encode_terminal_code, calculate_costs): Check for size calculation overflow. (encode_terminal_code): Use ptrdiff_t, not int, to record glyph table lengths and related sizes. Don't update size until alloc done. Redo calculations to avoid overflow. (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
* * sysdep.c: Integer and memory overflow issues.Paul Eggert2011-07-281-0/+5
| | | | | | (system_process_attributes): Use ptrdiff_t, not int, for command line length. Do not attempt to address one before the beginning of an array, as that's not portable.
* * search.c: Integer and memory overflow fixes.Paul Eggert2011-07-281-0/+4
| | | | | (Freplace_match): Check for size calculation overflow. (Fset_match_data): Don't assume list lengths fit in 'int'.
* * scroll.c: Integer and memory overflow fixes.Paul Eggert2011-07-281-0/+4
| | | | | (do_line_insertion_deletion_costs): Check for size calculation overflow. Don't bother calling xmalloc when xrealloc will do.
* * region-cache.c (move_cache_gap): Check for size calculation overflow.Paul Eggert2011-07-281-0/+2
|
* * process.c (Fnetwork_interface_list): Check for overflowPaul Eggert2011-07-281-0/+3
| | | | in size calculation.
* * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):Paul Eggert2011-07-281-0/+5
| | | | | | 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.
* * minibuf.c (read_minibuf_noninteractive): Don't leak memoryPaul Eggert2011-07-281-0/+3
| | | | on memory overflow.
* * macros.c: Integer and memory overflow fixes.Paul Eggert2011-07-281-0/+4
| | | | | (Fstart_kbd_macro): Don't update size until alloc done. (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
* * lread.c (read1, init_obarray): Don't update size until alloc done.Paul Eggert2011-07-281-0/+2
|
* * keymap.c: Integer overflow fixes.Paul Eggert2011-07-281-0/+5
| | | | | | (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.
* * keyboard.c: Integer and memory overflow fixes.Paul Eggert2011-07-281-0/+9
| | | | | | | | | | (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.
* * image.c: Integer and memory overflow fixes.Paul Eggert2011-07-281-0/+15
| | | | | | | | | | | | | | (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.
* * gtkutil.c: Integer overflow fixes.Paul Eggert2011-07-281-0/+13
| | | | | | | | | | | | | | (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.
* * ftfont.c: Check for size overflow.Paul Eggert2011-07-281-0/+4
| | | | | (ftfont_get_open_type_spec, setup_otf_gstring, ftfont_shape_by_flt): Check for integer overflow in size calculations.
* * fringe.c (Fdefine_fringe_bitmap): Don't update size until alloc works.Paul Eggert2011-07-281-0/+2
|
* * frame.h (struct frame): Use int, not EMACS_INT, where int works.Paul Eggert2011-07-281-0/+4
| | | | | This is for the members text_lines, text_cols, total_lines, total_cols, where the system imposes an 'int' limit.
* * frame.c: Integer overflow fixes.Paul Eggert2011-07-281-0/+5
| | | | | | (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.
* * eval.c: Integer and memory overflow fixes.Paul Eggert2011-07-281-0/+4
| | | | | (init_eval_once, grow_specpdl): Don't update size until alloc succeeds. (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
* * emacs.c (main, sort_args): Check for size-calculation overflow.Paul Eggert2011-07-281-0/+2
|
* * editfns.c: Integer and memory overflow fixes.Paul Eggert2011-07-281-0/+7
| | | | | | | | (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.
* * doc.c: Integer and memory overflow fixes.Paul Eggert2011-07-281-0/+8
| | | | | | | | | (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.
* Integer and memory overflow fixes for display code.Paul Eggert2011-07-281-0/+15
| | | | | | | | | | | | | | | | * 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.
* * composite.c: Integer overflow fixes.Paul Eggert2011-07-281-0/+3
| | | | (get_composition_id): Check for overflow in glyph length calculations.
* * coding.c: Integer and memory overflow fixes.Paul Eggert2011-07-281-0/+5
| | | | | | (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.
* * character.c (Fstring): Check for size-calculation overflow.Paul Eggert2011-07-281-0/+2
|
* * ccl.c: Integer and memory overflow fixes.Paul Eggert2011-07-281-0/+5
| | | | | | (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.
* * callproc.c (child_setup): Don't assume strlen fits in int.Paul Eggert2011-07-281-0/+2
|
* * buffer.c: Memory overflow fixes.Paul Eggert2011-07-281-0/+5
| | | | | | (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.
* * bidi.c: Integer overflow fix.Paul Eggert2011-07-281-0/+7
| | | | | | (bidi_shelve_header_size): New constant. (bidi_cache_ensure_space, bidi_shelve_cache): Use it. (bidi_cache_ensure_space): Avoid integer overflow when allocating.
* Use ptrdiff_t for composition IDs.Paul Eggert2011-07-191-0/+11
| | | | | | | | | | | | * 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.
* Merge from intsign.Paul Eggert2011-07-191-0/+20
|\
| * Merge from trunk.Paul Eggert2011-07-191-1/+49
| |\
| | * Port to OpenBSD.Paul Eggert2011-07-191-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | * * lread.c (syms_of_lread): Clarify when `lexical-binding' is usedLars Magne Ingebrigtsen2011-07-191-0/+5
| | |
* | | Merge from trunk.Paul Eggert2011-07-181-6/+30
|\ \ \ | | |/ | |/|
| * | * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.Paul Eggert2011-07-181-0/+4
| | | | | | | | | | | | | | | This fixes some race conditions on the permissions of any newly created file.
| * | * alloc.c (valid_pointer_p): Use pipe, not open.Paul Eggert2011-07-181-0/+3
| | | | | | | | | | | | This fixes some permissions issues when debugging.
| * | * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)Paul Eggert2011-07-181-0/+7
| | | | | | | | | | | | | | | | | | 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.
| * | * src/xdisp.c (next_element_from_string, next_element_from_buffer): Use EQStefan Monnier2011-07-171-0/+8
| | | | | | | | | | | | | | | | | | | | | 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.
| * | Make read-symbol-positions-list more accurateAndreas Schwab2011-07-171-0/+3
| | | | | | | | | | | | | | | * src/lread.c (read_integer): Unread even EOF character. (read1): Likewise. Properly record start position of symbol.
| * | * src/lread.c (read1): Read `#:' as empty uninterned symbol if noAndreas Schwab2011-07-171-0/+5
| | | | | | | | | | | | symbol character follows.
* | | Use ptrdiff_t for hash table indexes.Paul Eggert2011-07-181-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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).
* | | * charset.c (Fdefine_charset_internal): Check for integer overflow.Paul Eggert2011-07-181-0/+4
| | | | | | | | | | | | | | | Add a FIXME comment about memory leaks. (syms_of_charset): Don't assume xmalloc returns.
* | | Don't assume that stated character widths fit in int.Paul Eggert2011-07-181-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | Don't assume that tab-width fits in int.Paul Eggert2011-07-181-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | * fileio.c: Integer overflow issues with file modes.Paul Eggert2011-07-181-0/+3
| | | | | | | | | | | | (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
* | | * charset.c (read_hex): New arg OVERFLOW. All uses changed.Paul Eggert2011-07-171-0/+6
| | | | | | | | | | | | | | | Remove unreachable code. (read_hex, load_charset_map_from_file): Check for integer overflow.
* | | * xterm.c: don't go over XClientMessageEvent limitPaul Eggert2011-07-171-0/+6
| | | | | | | | | | | | | | | | | | | | | (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.