diff options
-rw-r--r-- | source3/smbd/smbXsrv_open.c | 6 | ||||
-rw-r--r-- | source3/smbd/smbXsrv_session.c | 6 | ||||
-rw-r--r-- | source3/smbd/smbXsrv_tcon.c | 6 | ||||
-rw-r--r-- | source3/smbd/smbXsrv_version.c | 4 |
4 files changed, 19 insertions, 3 deletions
diff --git a/source3/smbd/smbXsrv_open.c b/source3/smbd/smbXsrv_open.c index bb2084ddbc..03b0123bba 100644 --- a/source3/smbd/smbXsrv_open.c +++ b/source3/smbd/smbXsrv_open.c @@ -49,7 +49,7 @@ static struct db_context *smbXsrv_open_global_db_ctx = NULL; NTSTATUS smbXsrv_open_global_init(void) { - const char *global_path = NULL; + char *global_path = NULL; struct db_context *db_ctx = NULL; if (smbXsrv_open_global_db_ctx != NULL) { @@ -57,6 +57,9 @@ NTSTATUS smbXsrv_open_global_init(void) } global_path = lock_path("smbXsrv_open_global.tdb"); + if (global_path == NULL) { + return NT_STATUS_NO_MEMORY; + } db_ctx = db_open(NULL, global_path, 0, /* hash_size */ @@ -66,6 +69,7 @@ NTSTATUS smbXsrv_open_global_init(void) O_RDWR | O_CREAT, 0600, DBWRAP_LOCK_ORDER_1, DBWRAP_FLAG_NONE); + TALLOC_FREE(global_path); if (db_ctx == NULL) { NTSTATUS status; diff --git a/source3/smbd/smbXsrv_session.c b/source3/smbd/smbXsrv_session.c index 7eca968285..c5b7b7936c 100644 --- a/source3/smbd/smbXsrv_session.c +++ b/source3/smbd/smbXsrv_session.c @@ -59,7 +59,7 @@ static struct db_context *smbXsrv_session_global_db_ctx = NULL; NTSTATUS smbXsrv_session_global_init(void) { - const char *global_path = NULL; + char *global_path = NULL; struct db_context *db_ctx = NULL; if (smbXsrv_session_global_db_ctx != NULL) { @@ -70,6 +70,9 @@ NTSTATUS smbXsrv_session_global_init(void) * This contains secret information like session keys! */ global_path = lock_path("smbXsrv_session_global.tdb"); + if (global_path == NULL) { + return NT_STATUS_NO_MEMORY; + } db_ctx = db_open(NULL, global_path, 0, /* hash_size */ @@ -79,6 +82,7 @@ NTSTATUS smbXsrv_session_global_init(void) O_RDWR | O_CREAT, 0600, DBWRAP_LOCK_ORDER_1, DBWRAP_FLAG_NONE); + TALLOC_FREE(global_path); if (db_ctx == NULL) { NTSTATUS status; diff --git a/source3/smbd/smbXsrv_tcon.c b/source3/smbd/smbXsrv_tcon.c index 8d0c292b0a..89a25e8bee 100644 --- a/source3/smbd/smbXsrv_tcon.c +++ b/source3/smbd/smbXsrv_tcon.c @@ -47,7 +47,7 @@ static struct db_context *smbXsrv_tcon_global_db_ctx = NULL; NTSTATUS smbXsrv_tcon_global_init(void) { - const char *global_path = NULL; + char *global_path = NULL; struct db_context *db_ctx = NULL; if (smbXsrv_tcon_global_db_ctx != NULL) { @@ -55,6 +55,9 @@ NTSTATUS smbXsrv_tcon_global_init(void) } global_path = lock_path("smbXsrv_tcon_global.tdb"); + if (global_path == NULL) { + return NT_STATUS_NO_MEMORY; + } db_ctx = db_open(NULL, global_path, 0, /* hash_size */ @@ -64,6 +67,7 @@ NTSTATUS smbXsrv_tcon_global_init(void) O_RDWR | O_CREAT, 0600, DBWRAP_LOCK_ORDER_1, DBWRAP_FLAG_NONE); + TALLOC_FREE(global_path); if (db_ctx == NULL) { NTSTATUS status; diff --git a/source3/smbd/smbXsrv_version.c b/source3/smbd/smbXsrv_version.c index b24dae9f12..e318e7de1e 100644 --- a/source3/smbd/smbXsrv_version.c +++ b/source3/smbd/smbXsrv_version.c @@ -73,6 +73,10 @@ NTSTATUS smbXsrv_version_global_init(const struct server_id *server_id) frame = talloc_stackframe(); global_path = lock_path("smbXsrv_version_global.tdb"); + if (global_path == NULL) { + TALLOC_FREE(frame); + return NT_STATUS_NO_MEMORY; + } db_ctx = db_open(NULL, global_path, 0, /* hash_size */ |