Merge branch 'jk/tighten-alloc'
Update various codepaths to avoid manually-counted malloc().
* jk/tighten-alloc: (22 commits)
ewah: convert to REALLOC_ARRAY, etc
convert ewah/bitmap code to use xmalloc
diff_populate_gitlink: use a strbuf
transport_anonymize_url: use xstrfmt
git-compat-util: drop mempcpy compat code
sequencer: simplify memory allocation of get_message
test-path-utils: fix normalize_path_copy output buffer size
fetch-pack: simplify add_sought_entry
fast-import: simplify allocation in start_packfile
write_untracked_extension: use FLEX_ALLOC helper
prepare_{git,shell}_cmd: use argv_array
use st_add and st_mult for allocation size computation
convert trivial cases to FLEX_ARRAY macros
use xmallocz to avoid size arithmetic
convert trivial cases to ALLOC_ARRAY
convert manual allocations to argv_array
argv-array: add detach function
add helpers for allocating flex-array structs
harden REALLOC_ARRAY and xcalloc against size_t overflow
tree-diff: catch integer overflow in combine_diff_path allocation
...
This commit is contained in:
12
daemon.c
12
daemon.c
@ -808,7 +808,7 @@ static void check_dead_children(void)
|
||||
cradle = &blanket->next;
|
||||
}
|
||||
|
||||
static char **cld_argv;
|
||||
static struct argv_array cld_argv = ARGV_ARRAY_INIT;
|
||||
static void handle(int incoming, struct sockaddr *addr, socklen_t addrlen)
|
||||
{
|
||||
struct child_process cld = CHILD_PROCESS_INIT;
|
||||
@ -842,7 +842,7 @@ static void handle(int incoming, struct sockaddr *addr, socklen_t addrlen)
|
||||
#endif
|
||||
}
|
||||
|
||||
cld.argv = (const char **)cld_argv;
|
||||
cld.argv = cld_argv.argv;
|
||||
cld.in = incoming;
|
||||
cld.out = dup(incoming);
|
||||
|
||||
@ -1374,12 +1374,10 @@ int main(int argc, char **argv)
|
||||
write_file(pid_file, "%"PRIuMAX, (uintmax_t) getpid());
|
||||
|
||||
/* prepare argv for serving-processes */
|
||||
cld_argv = xmalloc(sizeof (char *) * (argc + 2));
|
||||
cld_argv[0] = argv[0]; /* git-daemon */
|
||||
cld_argv[1] = "--serve";
|
||||
argv_array_push(&cld_argv, argv[0]); /* git-daemon */
|
||||
argv_array_push(&cld_argv, "--serve");
|
||||
for (i = 1; i < argc; ++i)
|
||||
cld_argv[i+1] = argv[i];
|
||||
cld_argv[argc+1] = NULL;
|
||||
argv_array_push(&cld_argv, argv[i]);
|
||||
|
||||
return serve(&listen_addr, listen_port, cred);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user