aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2021-04-24 10:31:58 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-05-03 16:18:26 +0000
commitc192228b7398df72e472128605338555e5aa2db9 (patch)
tree05ce3154bf248ae7a361c61881c90c63bac191fd
parent87a64872cd3166a09b58aac28cdb95380d6a38eb (diff)
downloadsrc-c192228b7398df72e472128605338555e5aa2db9.tar.gz
src-c192228b7398df72e472128605338555e5aa2db9.zip
gcore: split code to open core file into helper
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29955
-rw-r--r--usr.bin/gcore/gcore.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/usr.bin/gcore/gcore.c b/usr.bin/gcore/gcore.c
index 8681b8484d81..cbbfea82085b 100644
--- a/usr.bin/gcore/gcore.c
+++ b/usr.bin/gcore/gcore.c
@@ -78,12 +78,27 @@ static pid_t pid;
SET_DECLARE(dumpset, struct dumpers);
+static int
+open_corefile(char *corefile)
+{
+ char fname[MAXPATHLEN];
+
+ if (corefile == NULL) {
+ (void)snprintf(fname, sizeof(fname), "core.%d", pid);
+ corefile = fname;
+ }
+ fd = open(corefile, O_RDWR | O_CREAT | O_TRUNC, DEFFILEMODE);
+ if (fd < 0)
+ err(1, "%s", corefile);
+ return (fd);
+}
+
int
main(int argc, char *argv[])
{
int ch, efd, fd, name[4];
char *binfile, *corefile;
- char passpath[MAXPATHLEN], fname[MAXPATHLEN];
+ char passpath[MAXPATHLEN];
struct dumpers **d, *dumper;
size_t len;
@@ -138,13 +153,7 @@ main(int argc, char *argv[])
}
if (dumper == NULL)
errx(1, "Invalid executable file");
- if (corefile == NULL) {
- (void)snprintf(fname, sizeof(fname), "core.%d", pid);
- corefile = fname;
- }
- fd = open(corefile, O_RDWR|O_CREAT|O_TRUNC, DEFFILEMODE);
- if (fd < 0)
- err(1, "%s", corefile);
+ fd = open_corefile(corefile);
dumper->dump(efd, fd, pid);
(void)close(fd);