mirror of
https://github.com/coreutils/coreutils.git
synced 2024-11-24 02:17:22 +08:00
sort: port to strict C + valgrind
* bootstrap.conf (gnulib_modules): Add flexmember. * src/sort.c: Include flexmember.h. (struct tempnode): Make the last member flexible. (create_temp_file): Port to strict C11/C99 rules for allocation alignment with flexible array members.
This commit is contained in:
parent
e9e7289210
commit
d47090d964
@ -88,6 +88,7 @@ gnulib_modules="
|
||||
filemode
|
||||
filenamecat
|
||||
filevercmp
|
||||
flexmember
|
||||
fnmatch-gnu
|
||||
fopen-safer
|
||||
fprintftime
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "error.h"
|
||||
#include "fadvise.h"
|
||||
#include "filevercmp.h"
|
||||
#include "flexmember.h"
|
||||
#include "hard-locale.h"
|
||||
#include "hash.h"
|
||||
#include "heap.h"
|
||||
@ -667,7 +668,7 @@ struct tempnode
|
||||
struct tempnode *volatile next;
|
||||
pid_t pid; /* The subprocess PID; undefined if state == UNCOMPRESSED. */
|
||||
char state;
|
||||
char name[1]; /* Actual size is 1 + file name length. */
|
||||
char name[FLEXIBLE_ARRAY_MEMBER];
|
||||
};
|
||||
static struct tempnode *volatile temphead;
|
||||
static struct tempnode *volatile *temptail = &temphead;
|
||||
@ -855,7 +856,7 @@ create_temp_file (int *pfd, bool survive_fd_exhaustion)
|
||||
char const *temp_dir = temp_dirs[temp_dir_index];
|
||||
size_t len = strlen (temp_dir);
|
||||
struct tempnode *node =
|
||||
xmalloc (offsetof (struct tempnode, name) + len + sizeof slashbase);
|
||||
xmalloc (FLEXSIZEOF (struct tempnode, name, len + sizeof slashbase));
|
||||
char *file = node->name;
|
||||
struct cs_status cs;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user