1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-10 01:18:15 +03:00

lib:util: File descriptor being closed repeatedly.

In file_load()/file_lines_load(), the file's fd is obtained using
open(), and in fd_load() the fd is converted to a FILE* using
fdopen(). However, after fclose(), the fd is closed again using
close().

Bug: https://bugzilla.samba.org/show_bug.cgi?id=15311
Signed-off-by: baixiangcpp baixiangcpp@gmail.com
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>

Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Thu Feb 16 12:13:05 UTC 2023 on atb-devel-224
This commit is contained in:
baixiangcpp 2023-02-10 11:01:47 +08:00 committed by Volker Lendecke
parent 8441c03ccf
commit 206dcf7d42

View File

@ -175,13 +175,20 @@ _PUBLIC_ char *fd_load(int fd, size_t *psize, size_t maxsize, TALLOC_CTX *mem_ct
size_t size = 0;
size_t chunk = 1024;
int err;
int fd_dup;
if (maxsize == 0) {
maxsize = SIZE_MAX;
}
file = fdopen(fd, "r");
fd_dup = dup(fd);
if (fd_dup == -1) {
return NULL;
}
file = fdopen(fd_dup, "r");
if (file == NULL) {
close(fd_dup);
return NULL;
}