зеркало из https://github.com/microsoft/git.git
don't dereference NULL upon fdopen failure
There were several unchecked use of fdopen(); replace them with xfdopen() that checks and dies. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
3d913526b1
Коммит
41698375ad
|
@ -198,7 +198,7 @@ static int edit_patch(int argc, const char **argv, const char *prefix)
|
||||||
out = open(file, O_CREAT | O_WRONLY, 0644);
|
out = open(file, O_CREAT | O_WRONLY, 0644);
|
||||||
if (out < 0)
|
if (out < 0)
|
||||||
die ("Could not open '%s' for writing.", file);
|
die ("Could not open '%s' for writing.", file);
|
||||||
rev.diffopt.file = fdopen(out, "w");
|
rev.diffopt.file = xfdopen(out, "w");
|
||||||
rev.diffopt.close_file = 1;
|
rev.diffopt.close_file = 1;
|
||||||
if (run_diff_files(&rev, 0))
|
if (run_diff_files(&rev, 0))
|
||||||
die ("Could not write patch");
|
die ("Could not write patch");
|
||||||
|
|
|
@ -64,7 +64,7 @@ static int split_one(FILE *mbox, const char *name, int allow_bare)
|
||||||
fd = open(name, O_WRONLY | O_CREAT | O_EXCL, 0666);
|
fd = open(name, O_WRONLY | O_CREAT | O_EXCL, 0666);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
die_errno("cannot open output file '%s'", name);
|
die_errno("cannot open output file '%s'", name);
|
||||||
output = fdopen(fd, "w");
|
output = xfdopen(fd, "w");
|
||||||
|
|
||||||
/* Copy it out, while searching for a line that begins with
|
/* Copy it out, while searching for a line that begins with
|
||||||
* "From " and having something that looks like a date format.
|
* "From " and having something that looks like a date format.
|
||||||
|
|
2
bundle.c
2
bundle.c
|
@ -234,7 +234,7 @@ int create_bundle(struct bundle_header *header, const char *path,
|
||||||
rls.git_cmd = 1;
|
rls.git_cmd = 1;
|
||||||
if (start_command(&rls))
|
if (start_command(&rls))
|
||||||
return -1;
|
return -1;
|
||||||
rls_fout = fdopen(rls.out, "r");
|
rls_fout = xfdopen(rls.out, "r");
|
||||||
while (fgets(buffer, sizeof(buffer), rls_fout)) {
|
while (fgets(buffer, sizeof(buffer), rls_fout)) {
|
||||||
unsigned char sha1[20];
|
unsigned char sha1[20];
|
||||||
if (buffer[0] == '-') {
|
if (buffer[0] == '-') {
|
||||||
|
|
|
@ -39,7 +39,7 @@ static struct child_process *get_helper(struct transport *transport)
|
||||||
|
|
||||||
write_str_in_full(helper->in, "capabilities\n");
|
write_str_in_full(helper->in, "capabilities\n");
|
||||||
|
|
||||||
file = fdopen(helper->out, "r");
|
file = xfdopen(helper->out, "r");
|
||||||
while (1) {
|
while (1) {
|
||||||
if (strbuf_getline(&buf, file, '\n') == EOF)
|
if (strbuf_getline(&buf, file, '\n') == EOF)
|
||||||
exit(128); /* child died, message supplied already */
|
exit(128); /* child died, message supplied already */
|
||||||
|
@ -71,7 +71,7 @@ static int fetch_with_fetch(struct transport *transport,
|
||||||
int nr_heads, const struct ref **to_fetch)
|
int nr_heads, const struct ref **to_fetch)
|
||||||
{
|
{
|
||||||
struct child_process *helper = get_helper(transport);
|
struct child_process *helper = get_helper(transport);
|
||||||
FILE *file = fdopen(helper->out, "r");
|
FILE *file = xfdopen(helper->out, "r");
|
||||||
int i;
|
int i;
|
||||||
struct strbuf buf = STRBUF_INIT;
|
struct strbuf buf = STRBUF_INIT;
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ static struct ref *get_refs_list(struct transport *transport, int for_push)
|
||||||
|
|
||||||
write_str_in_full(helper->in, "list\n");
|
write_str_in_full(helper->in, "list\n");
|
||||||
|
|
||||||
file = fdopen(helper->out, "r");
|
file = xfdopen(helper->out, "r");
|
||||||
while (1) {
|
while (1) {
|
||||||
char *eov, *eon;
|
char *eov, *eon;
|
||||||
if (strbuf_getline(&buf, file, '\n') == EOF)
|
if (strbuf_getline(&buf, file, '\n') == EOF)
|
||||||
|
|
|
@ -108,7 +108,7 @@ static int do_rev_list(int fd, void *create_full_pack)
|
||||||
int i;
|
int i;
|
||||||
struct rev_info revs;
|
struct rev_info revs;
|
||||||
|
|
||||||
pack_pipe = fdopen(fd, "w");
|
pack_pipe = xfdopen(fd, "w");
|
||||||
init_revisions(&revs, NULL);
|
init_revisions(&revs, NULL);
|
||||||
revs.tag_objects = 1;
|
revs.tag_objects = 1;
|
||||||
revs.tree_objects = 1;
|
revs.tree_objects = 1;
|
||||||
|
@ -255,7 +255,7 @@ static void create_pack_file(void)
|
||||||
|
|
||||||
/* pass on revisions we (don't) want */
|
/* pass on revisions we (don't) want */
|
||||||
if (!shallow_nr) {
|
if (!shallow_nr) {
|
||||||
FILE *pipe_fd = fdopen(pack_objects.in, "w");
|
FILE *pipe_fd = xfdopen(pack_objects.in, "w");
|
||||||
if (!create_full_pack) {
|
if (!create_full_pack) {
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < want_obj.nr; i++)
|
for (i = 0; i < want_obj.nr; i++)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче