aboutsummaryrefslogtreecommitdiffstats
path: root/src/xselect.c
diff options
context:
space:
mode:
authorPaul Eggert2011-07-27 17:48:01 -0700
committerPaul Eggert2011-07-27 17:48:01 -0700
commit044c22e545acef592ed95e4e3bb9f8aeff67291a (patch)
tree167a4c706b62b12ea979bdf6ad47e70b66bb0394 /src/xselect.c
parentdbf38e02c9ade4979418f24a99962cfef170b957 (diff)
parent8265d3bb30544e58683fc16e23f9908f3d5d0abc (diff)
downloademacs-044c22e545acef592ed95e4e3bb9f8aeff67291a.tar.gz
emacs-044c22e545acef592ed95e4e3bb9f8aeff67291a.zip
Merge: Integer signedness and overflow and related fixes.
Fixes: debbugs:9079
Diffstat (limited to 'src/xselect.c')
-rw-r--r--src/xselect.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/xselect.c b/src/xselect.c
index 5e5bdb55eca..f63977a73de 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -2381,7 +2381,7 @@ FRAME is on. If FRAME is nil, the selected frame is used. */)
2381{ 2381{
2382 Atom x_atom; 2382 Atom x_atom;
2383 struct frame *f = check_x_frame (frame); 2383 struct frame *f = check_x_frame (frame);
2384 size_t i; 2384 ptrdiff_t i;
2385 struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); 2385 struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
2386 2386
2387 2387
@@ -2402,6 +2402,9 @@ FRAME is on. If FRAME is nil, the selected frame is used. */)
2402 2402
2403 if (dpyinfo->x_dnd_atoms_length == dpyinfo->x_dnd_atoms_size) 2403 if (dpyinfo->x_dnd_atoms_length == dpyinfo->x_dnd_atoms_size)
2404 { 2404 {
2405 if (min (PTRDIFF_MAX, SIZE_MAX) / sizeof *dpyinfo->x_dnd_atoms / 2
2406 < dpyinfo->x_dnd_atoms_size)
2407 memory_full (SIZE_MAX);
2405 dpyinfo->x_dnd_atoms_size *= 2; 2408 dpyinfo->x_dnd_atoms_size *= 2;
2406 dpyinfo->x_dnd_atoms = xrealloc (dpyinfo->x_dnd_atoms, 2409 dpyinfo->x_dnd_atoms = xrealloc (dpyinfo->x_dnd_atoms,
2407 sizeof (*dpyinfo->x_dnd_atoms) 2410 sizeof (*dpyinfo->x_dnd_atoms)
@@ -2424,7 +2427,7 @@ x_handle_dnd_message (struct frame *f, XClientMessageEvent *event, struct x_disp
2424 int x, y; 2427 int x, y;
2425 unsigned char *data = (unsigned char *) event->data.b; 2428 unsigned char *data = (unsigned char *) event->data.b;
2426 int idata[5]; 2429 int idata[5];
2427 size_t i; 2430 ptrdiff_t i;
2428 2431
2429 for (i = 0; i < dpyinfo->x_dnd_atoms_length; ++i) 2432 for (i = 0; i < dpyinfo->x_dnd_atoms_length; ++i)
2430 if (dpyinfo->x_dnd_atoms[i] == event->message_type) break; 2433 if (dpyinfo->x_dnd_atoms[i] == event->message_type) break;