[SCM] Samba Shared Repository - branch master updated
Andreas Schneider
asn at samba.org
Fri Oct 27 06:52:02 UTC 2023
The branch, master has been updated
via d1d2a03d73b s3:utils: Initialize the memcache for smbpasswd
via 89e376c69a3 s3:util: Add gfree_memcache() to gfree_all()
via cdcaac148f3 lib:util: Add a gfree_memcache()
via b3234c55743 s3:passdb: Do not leak memory if memcache add fails
via 842d2eca91b lib:util: Add boolean return type for memcache_add_talloc()
via 200a5b7617d lib:util: Add boolean return type for memcache_add()
via a2a31519fb5 s3:utils: Initialize row variable in wspsearch
from 0bb67a3a7e7 python: silos: add support for allowed to authenticate from silo shortcut
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit d1d2a03d73b376d54aa6d010e521282746b068fe
Author: Andreas Schneider <asn at samba.org>
Date: Thu Oct 26 14:37:29 2023 +0200
s3:utils: Initialize the memcache for smbpasswd
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
Autobuild-Date(master): Fri Oct 27 06:51:48 UTC 2023 on atb-devel-224
commit 89e376c69a39175684dfb7b7cbaea9dcd996dd63
Author: Andreas Schneider <asn at samba.org>
Date: Thu Oct 26 14:36:02 2023 +0200
s3:util: Add gfree_memcache() to gfree_all()
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit cdcaac148f3b42d8bdf415a5ce0ef77031c2d0f5
Author: Andreas Schneider <asn at samba.org>
Date: Thu Oct 26 14:35:44 2023 +0200
lib:util: Add a gfree_memcache()
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit b3234c55743d8329ba1d387943865b23233e22c7
Author: Andreas Schneider <asn at samba.org>
Date: Thu Oct 26 14:28:19 2023 +0200
s3:passdb: Do not leak memory if memcache add fails
Indirect leak of 496 byte(s) in 1 object(s) allocated from:
#0 0x7ffb062dc03f in malloc (/lib64/libasan.so.8+0xdc03f) (BuildId: 3e1694ad218c99a8b1b69231666a27df63cf19d0)
#1 0x7ffb06025b3e in __talloc_with_prefix ../../lib/talloc/talloc.c:783
#2 0x7ffb06027512 in __talloc ../../lib/talloc/talloc.c:825
#3 0x7ffb06027512 in _talloc_named_const ../../lib/talloc/talloc.c:982
#4 0x7ffb06027512 in _talloc_zero ../../lib/talloc/talloc.c:2421
#5 0x7ffb05a0332c in samu_new ../../source3/passdb/passdb.c:63
#6 0x7ffb05a2031f in pdb_getsampwnam ../../source3/passdb/pdb_interface.c:351
#7 0x7ffb05a0540b in local_password_change ../../source3/passdb/passdb.c:752
#8 0x56291ddd4b8b in password_change ../../source3/utils/smbpasswd.c:273
#9 0x56291ddd5b59 in process_root ../../source3/utils/smbpasswd.c:478
#10 0x56291ddd5b59 in main ../../source3/utils/smbpasswd.c:661
#11 0x7ffb024281af in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 842d2eca91be3682ba7194501cafa6a0c2152be6
Author: Andreas Schneider <asn at samba.org>
Date: Thu Oct 26 14:26:57 2023 +0200
lib:util: Add boolean return type for memcache_add_talloc()
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 200a5b7617d6f12a3907702bf0473f7ddda1c53b
Author: Andreas Schneider <asn at samba.org>
Date: Thu Oct 26 14:26:26 2023 +0200
lib:util: Add boolean return type for memcache_add()
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit a2a31519fb5f0313c6dcf3b251180530c9006802
Author: Andreas Schneider <asn at samba.org>
Date: Thu Oct 26 14:09:33 2023 +0200
s3:utils: Initialize row variable in wspsearch
../../source3/utils/wspsearch.c:331:25: error: ‘row’ may be used
uninitialized [-Werror=maybe-uninitialized]
331 | *rows_processed = row;
| ~~~~~~~~~~~~~~~~^~~~~
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
-----------------------------------------------------------------------
Summary of changes:
lib/util/memcache.c | 24 ++++++++++++++++--------
lib/util/memcache.h | 6 ++++--
source3/lib/util.c | 3 +++
source3/passdb/pdb_interface.c | 10 +++++++---
source3/utils/smbpasswd.c | 9 +++++++++
source3/utils/wspsearch.c | 2 +-
6 files changed, 40 insertions(+), 14 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/util/memcache.c b/lib/util/memcache.c
index 7b0b27eaddb..98e317c66fb 100644
--- a/lib/util/memcache.c
+++ b/lib/util/memcache.c
@@ -265,7 +265,7 @@ void memcache_delete(struct memcache *cache, enum memcache_number n,
memcache_delete_element(cache, e);
}
-void memcache_add(struct memcache *cache, enum memcache_number n,
+bool memcache_add(struct memcache *cache, enum memcache_number n,
DATA_BLOB key, DATA_BLOB value)
{
struct memcache_element *e;
@@ -278,11 +278,11 @@ void memcache_add(struct memcache *cache, enum memcache_number n,
cache = global_cache;
}
if (cache == NULL) {
- return;
+ return false;
}
if (key.length == 0) {
- return;
+ return false;
}
e = memcache_find(cache, n, key);
@@ -312,7 +312,7 @@ void memcache_add(struct memcache *cache, enum memcache_number n,
memcpy(&mtv, cache_value.data, sizeof(mtv));
cache->size += mtv.len;
}
- return;
+ return true;
}
memcache_delete_element(cache, e);
@@ -323,7 +323,7 @@ void memcache_add(struct memcache *cache, enum memcache_number n,
e = talloc_size(cache, element_size);
if (e == NULL) {
DEBUG(0, ("talloc failed\n"));
- return;
+ return false;
}
talloc_set_type(e, struct memcache_element);
@@ -363,9 +363,11 @@ void memcache_add(struct memcache *cache, enum memcache_number n,
cache->size += mtv.len;
}
memcache_trim(cache, e);
+
+ return true;
}
-void memcache_add_talloc(struct memcache *cache, enum memcache_number n,
+bool memcache_add_talloc(struct memcache *cache, enum memcache_number n,
DATA_BLOB key, void *pptr)
{
struct memcache_talloc_value mtv;
@@ -375,12 +377,13 @@ void memcache_add_talloc(struct memcache *cache, enum memcache_number n,
cache = global_cache;
}
if (cache == NULL) {
- return;
+ return false;
}
mtv.len = talloc_total_size(*ptr);
mtv.ptr = talloc_move(cache, ptr);
- memcache_add(cache, n, key, data_blob_const(&mtv, sizeof(mtv)));
+
+ return memcache_add(cache, n, key, data_blob_const(&mtv, sizeof(mtv)));
}
void memcache_flush(struct memcache *cache, enum memcache_number n)
@@ -457,3 +460,8 @@ void memcache_flush(struct memcache *cache, enum memcache_number n)
node = next;
}
}
+
+void gfree_memcache(void)
+{
+ TALLOC_FREE(global_cache);
+}
diff --git a/lib/util/memcache.h b/lib/util/memcache.h
index 803af813025..6986760b8ce 100644
--- a/lib/util/memcache.h
+++ b/lib/util/memcache.h
@@ -68,7 +68,7 @@ void memcache_set_global(struct memcache *cache);
* Add a data blob to the cache
*/
-void memcache_add(struct memcache *cache, enum memcache_number n,
+bool memcache_add(struct memcache *cache, enum memcache_number n,
DATA_BLOB key, DATA_BLOB value);
/*
@@ -82,7 +82,7 @@ void memcache_add(struct memcache *cache, enum memcache_number n,
* talloc objects in the cache types.
*/
-void memcache_add_talloc(struct memcache *cache, enum memcache_number n,
+bool memcache_add_talloc(struct memcache *cache, enum memcache_number n,
DATA_BLOB key, void *ptr);
/*
@@ -114,4 +114,6 @@ void *memcache_lookup_talloc(struct memcache *cache, enum memcache_number n,
void memcache_flush(struct memcache *cache, enum memcache_number n);
+void gfree_memcache(void);
+
#endif
diff --git a/source3/lib/util.c b/source3/lib/util.c
index b6305da91ed..f891842a6b7 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -30,6 +30,7 @@
#include "system/passwd.h"
#include "system/filesys.h"
#include "lib/util/server_id.h"
+#include "lib/util/memcache.h"
#include "util_tdb.h"
#include "ctdbd_conn.h"
#include "../lib/util/util_pw.h"
@@ -71,6 +72,8 @@ void gfree_all( void )
gfree_charcnv();
gfree_interfaces();
gfree_debugsyms();
+ gfree_memcache();
+
}
/*******************************************************************
diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c
index cee90d9ff79..d3648f155ed 100644
--- a/source3/passdb/pdb_interface.c
+++ b/source3/passdb/pdb_interface.c
@@ -360,9 +360,13 @@ bool pdb_getsampwnam(struct samu *sam_acct, const char *username)
user_sid = pdb_get_user_sid(for_cache);
- memcache_add_talloc(NULL, PDB_GETPWSID_CACHE,
- data_blob_const(user_sid, sizeof(*user_sid)),
- &for_cache);
+ ok = memcache_add_talloc(NULL,
+ PDB_GETPWSID_CACHE,
+ data_blob_const(user_sid, sizeof(*user_sid)),
+ &for_cache);
+ if (!ok) {
+ TALLOC_FREE(for_cache);
+ }
return True;
}
diff --git a/source3/utils/smbpasswd.c b/source3/utils/smbpasswd.c
index 950aaff67da..f2c5dfd2b0f 100644
--- a/source3/utils/smbpasswd.c
+++ b/source3/utils/smbpasswd.c
@@ -27,6 +27,7 @@
#include "passwd_proto.h"
#include "lib/util/string_wrappers.h"
#include "lib/param/param.h"
+#include "lib/util/memcache.h"
/*
* Next two lines needed for SunOS and don't
@@ -620,9 +621,17 @@ int main(int argc, char **argv)
{
TALLOC_CTX *frame = talloc_stackframe();
struct loadparm_context *lp_ctx = NULL;
+ struct memcache *mcache = NULL;
int local_flags = 0;
int ret;
+ mcache = memcache_init(NULL, 0);
+ if (mcache == NULL) {
+ fprintf(stderr, "%s: memcache_init failed\n", __location__);
+ return 1;
+ }
+ memcache_set_global(mcache);
+
#if defined(HAVE_SET_AUTH_PARAMETERS)
set_auth_parameters(argc, argv);
#endif /* HAVE_SET_AUTH_PARAMETERS */
diff --git a/source3/utils/wspsearch.c b/source3/utils/wspsearch.c
index 3650fe12f34..aa088f7c13a 100644
--- a/source3/utils/wspsearch.c
+++ b/source3/utils/wspsearch.c
@@ -256,7 +256,7 @@ static NTSTATUS print_rowsreturned(
uint32_t *rows_processed)
{
NTSTATUS status;
- int row;
+ uint32_t row = 0;
TALLOC_CTX *local_ctx = NULL;
struct wsp_cbasestoragevariant **rowsarray = NULL;
enum ndr_err_code err;
--
Samba Shared Repository
More information about the samba-cvs
mailing list