The branch, master has been updated
       via  a663d07c7ea s3:client: Use talloc to avoid memory leaks in smbspool
      from  ba87122e9c0 docs-xml: Document SID extension certificate mappings

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit a663d07c7eaab06008eea06057da65ee0099a227
Author: Andreas Schneider <[email protected]>
Date:   Wed Oct 22 11:24:24 2025 +0200

    s3:client: Use talloc to avoid memory leaks in smbspool
    
    The function uri_unescape_alloc() is called by main() which has a talloc
    stackframe.
    
    Direct leak of 13 byte(s) in 1 object(s) allocated from:
        #0 0x7fc31351b9a0 in strdup (/lib64/libasan.so.8+0x11b9a0) (BuildId: 
388ee9ac193f74c177c6f52988d2d0dab110de41)
        #1 0x7fc3129cfb50 in smb_xstrdup ../../lib/util/util.c:760
        #2 0x0000002059f8 in uri_unescape_alloc 
../../source3/client/smbspool.c:888
        #3 0x00000020752a in main ../../source3/client/smbspool.c:347
        #4 0x7fc30f62b2fa in __libc_start_call_main (/lib64/libc.so.6+0x2b2fa) 
(BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
        #5 0x7ffd8bb806be  ([stack]+0x3b6be)
    
    Signed-off-by: Andreas Schneider <[email protected]>
    Reviewed-by: Anoop C S <[email protected]>
    
    Autobuild-User(master): Anoop C S <[email protected]>
    Autobuild-Date(master): Fri Oct 24 07:42:37 UTC 2025 on atb-devel-224

-----------------------------------------------------------------------

Summary of changes:
 source3/client/smbspool.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c
index c056cc76996..d5246542709 100644
--- a/source3/client/smbspool.c
+++ b/source3/client/smbspool.c
@@ -883,16 +883,14 @@ smb_print(struct cli_state * cli, /* I - SMB connection */
 static char *
 uri_unescape_alloc(const char *uritok)
 {
-       char *ret;
-       char *end;
-       ret = (char *) SMB_STRDUP(uritok);
+       char *end = NULL;
+       char *ret = talloc_strdup(talloc_tos(), uritok);
        if (!ret) {
                return NULL;
        }
 
        end = rfc1738_unescape(ret);
        if (end == NULL) {
-               free(ret);
                return NULL;
        }
        return ret;


-- 
Samba Shared Repository

Reply via email to