mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-03 23:28:58 +00:00
savecore: decrease filename buffer sizes
All files are now created relative to savedirfd, e.g. with openat(2).
Therefore, we do not need character buffers to be PATH_MAX bytes long,
just long enough to hold the complete filename. 32 bytes is long enough
in all cases. These can be allocated on the stack.
While here, fix an error message that attempts to use an uninitialized
infoname.
Reviewed by: markj
MFC after: 3 days
Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D34821
(cherry picked from commit fafeb5342b
)
This commit is contained in:
parent
1961b46059
commit
274e8fff31
|
@ -318,7 +318,7 @@ file_size(int savedirfd, const char *path)
|
|||
static off_t
|
||||
saved_dump_size(int savedirfd, int bounds)
|
||||
{
|
||||
static char path[PATH_MAX];
|
||||
char path[32];
|
||||
off_t dumpsize;
|
||||
|
||||
dumpsize = 0;
|
||||
|
@ -342,7 +342,7 @@ saved_dump_size(int savedirfd, int bounds)
|
|||
static void
|
||||
saved_dump_remove(int savedirfd, int bounds)
|
||||
{
|
||||
static char path[PATH_MAX];
|
||||
char path[32];
|
||||
|
||||
(void)snprintf(path, sizeof(path), "info.%d", bounds);
|
||||
(void)unlinkat(savedirfd, path, 0);
|
||||
|
@ -697,10 +697,9 @@ DoTextdumpFile(int fd, off_t dumpsize, off_t lasthd, char *buf,
|
|||
static void
|
||||
DoFile(const char *savedir, int savedirfd, const char *device)
|
||||
{
|
||||
xo_handle_t *xostdout, *xoinfo;
|
||||
static char infoname[PATH_MAX], corename[PATH_MAX], linkname[PATH_MAX];
|
||||
static char keyname[PATH_MAX];
|
||||
static char *buf = NULL;
|
||||
xo_handle_t *xostdout, *xoinfo;
|
||||
char infoname[32], corename[32], linkname[32], keyname[32];
|
||||
char *temp = NULL;
|
||||
struct kerneldumpheader kdhf, kdhl;
|
||||
uint8_t *dumpkey;
|
||||
|
@ -719,7 +718,7 @@ DoFile(const char *savedir, int savedirfd, const char *device)
|
|||
|
||||
xostdout = xo_create_to_file(stdout, XO_STYLE_TEXT, 0);
|
||||
if (xostdout == NULL) {
|
||||
logmsg(LOG_ERR, "%s: %m", infoname);
|
||||
logmsg(LOG_ERR, "xo_create_to_file() failed: %m");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue