commit b48e2ddb7c7f3bec51c4be31a1484677022384e8 from: Stefan Sperling date: Wed May 22 10:31:30 2019 UTC set datasize limit of got-read-pack helpers to maximum commit - 1a35c1bc90d05a6bac56e2602a0bcc2109796fce commit + b48e2ddb7c7f3bec51c4be31a1484677022384e8 blob - d781faafd2c372bd139bef6f3b37d18ffca12f5b blob + f2cc6ae451f6713619f46c3e78b199f13c5b4ea1 --- lib/object.c +++ lib/object.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -226,6 +227,18 @@ request_packed_object(struct got_object **obj, struct memcpy(&(*obj)->id, id, sizeof((*obj)->id)); return NULL; +} + +void +set_max_datasize(void) +{ + struct rlimit rl; + + if (getrlimit(RLIMIT_DATA, &rl) != 0) + return; + + rl.rlim_cur = rl.rlim_max; + setrlimit(RLIMIT_DATA, &rl); } static const struct got_error * @@ -257,6 +270,7 @@ start_pack_privsep_child(struct got_pack *pack, struct err = got_error_from_errno("fork"); goto done; } else if (pid == 0) { + set_max_datasize(); exec_privsep_child(imsg_fds, GOT_PATH_PROG_READ_PACK, pack->path_packfile); /* not reached */