[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master f66a47b5bc: Compute size of structs with flexible arrays correctl
From: |
Po Lu |
Subject: |
master f66a47b5bc: Compute size of structs with flexible arrays correctly in Motif DND code |
Date: |
Sat, 2 Apr 2022 04:39:30 -0400 (EDT) |
branch: master
commit f66a47b5bca7a9c603040b7c62a2562a925c94d3
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Compute size of structs with flexible arrays correctly in Motif DND code
* src/xterm.c (xm_read_targets_table_rec, xm_setup_dnd_targets):
Use FLEXSIZEOF instead of sizeof on struct xm_targets_table_rec.
---
src/xterm.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/xterm.c b/src/xterm.c
index 48c054c478..08e3a95633 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -604,6 +604,7 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <errno.h>
#include <sys/stat.h>
+#include <flexmember.h>
#include "character.h"
#include "coding.h"
#include "composite.h"
@@ -1135,7 +1136,8 @@ xm_read_targets_table_rec (uint8_t *bytes, ptrdiff_t
length,
if (byteorder != XM_TARGETS_TABLE_CUR)
SWAPCARD16 (nitems);
- rec = xmalloc (sizeof *rec + nitems * 4);
+ rec = xmalloc (FLEXSIZEOF (struct xm_targets_table_rec,
+ targets, nitems * 4));
rec->n_targets = nitems;
for (i = 0; i < nitems; ++i)
@@ -1428,7 +1430,8 @@ xm_setup_dnd_targets (struct x_display_info *dpyinfo,
header.total_data_size = 8 + 2 + ntargets * 4;
recs = xmalloc (sizeof *recs);
- recs[0] = xmalloc (sizeof **recs + ntargets * 4);
+ recs[0] = xmalloc (FLEXSIZEOF (struct xm_targets_table_rec,
+ targets, ntargets * 4));
recs[0]->n_targets = ntargets;
@@ -1448,7 +1451,9 @@ xm_setup_dnd_targets (struct x_display_info *dpyinfo,
header.target_list_count++;
header.total_data_size += 2 + ntargets * 4;
- recs[header.target_list_count - 1] = xmalloc (sizeof **recs +
ntargets * 4);
+ recs[header.target_list_count - 1]
+ = xmalloc (FLEXSIZEOF (struct xm_targets_table_rec,
+ targets, ntargets * 4));
recs[header.target_list_count - 1]->n_targets = ntargets;
for (i = 0; i < ntargets; ++i)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master f66a47b5bc: Compute size of structs with flexible arrays correctly in Motif DND code,
Po Lu <=