mirror of
https://github.com/shadow-maint/shadow.git
synced 2026-01-26 22:12:26 +00:00
lib/commonio.c: Larger buffer size for file names
Make sure that enough bytes exist for file name of temporary file which is used to construct the next database file. While at it, use a better variable name. Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
This commit is contained in:
parent
f8732b17dd
commit
c745eea4a4
@ -872,7 +872,7 @@ int
|
||||
commonio_close(struct commonio_db *db, MAYBE_UNUSED bool process_selinux)
|
||||
{
|
||||
bool errors = false;
|
||||
char buf[1024];
|
||||
char tmpf[PATH_MAX];
|
||||
struct stat sb;
|
||||
|
||||
if (!db->isopen) {
|
||||
@ -937,7 +937,7 @@ commonio_close(struct commonio_db *db, MAYBE_UNUSED bool process_selinux)
|
||||
sb.st_gid = db->st_gid;
|
||||
}
|
||||
|
||||
if (stprintf_a(buf, "%s.cioXXXXXX", db->filename) == -1)
|
||||
if (stprintf_a(tmpf, "%s.cioXXXXXX", db->filename) == -1)
|
||||
goto fail;
|
||||
|
||||
#ifdef WITH_SELINUX
|
||||
@ -947,7 +947,7 @@ commonio_close(struct commonio_db *db, MAYBE_UNUSED bool process_selinux)
|
||||
}
|
||||
#endif
|
||||
|
||||
db->fp = fmkstemp_set_perms(buf, &sb);
|
||||
db->fp = fmkstemp_set_perms(tmpf, &sb);
|
||||
if (NULL == db->fp) {
|
||||
goto fail;
|
||||
}
|
||||
@ -971,11 +971,11 @@ commonio_close(struct commonio_db *db, MAYBE_UNUSED bool process_selinux)
|
||||
db->fp = NULL;
|
||||
|
||||
if (errors) {
|
||||
unlink (buf);
|
||||
unlink(tmpf);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (lrename(buf, db->filename) != 0) {
|
||||
if (lrename(tmpf, db->filename) != 0) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user