diff options
author | Stefan Metzmacher <metze@samba.org> | 2008-09-09 17:50:30 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2008-09-23 11:30:02 +0200 |
commit | 781d7c4c1cbd34413450f251d4078a9cb8055831 (patch) | |
tree | 3500e0a3bd16845a1791227dc2a2540f1e00cd69 /source4/libcli | |
parent | 588af6901b019d414f4319ea9a1f40cb3d0e140e (diff) | |
download | samba-781d7c4c1cbd34413450f251d4078a9cb8055831.tar.gz samba-781d7c4c1cbd34413450f251d4078a9cb8055831.tar.bz2 samba-781d7c4c1cbd34413450f251d4078a9cb8055831.zip |
libcli/raw: give the caller the chance to prevent the talloc_free(req) in the _recv functions
metze
Diffstat (limited to 'source4/libcli')
-rw-r--r-- | source4/libcli/raw/libcliraw.h | 3 | ||||
-rw-r--r-- | source4/libcli/raw/rawrequest.c | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/source4/libcli/raw/libcliraw.h b/source4/libcli/raw/libcliraw.h index d55b4cc42c..c9cafedd4c 100644 --- a/source4/libcli/raw/libcliraw.h +++ b/source4/libcli/raw/libcliraw.h @@ -261,6 +261,9 @@ struct smbcli_request { counter by one */ uint_t sign_single_increment:1; + /* give the caller a chance to prevent the talloc_free() in the _recv() function */ + bool do_not_free; + /* the mid of this packet - used to match replies */ uint16_t mid; diff --git a/source4/libcli/raw/rawrequest.c b/source4/libcli/raw/rawrequest.c index a0e6452748..dd9b1f3e96 100644 --- a/source4/libcli/raw/rawrequest.c +++ b/source4/libcli/raw/rawrequest.c @@ -72,7 +72,11 @@ _PUBLIC_ NTSTATUS smbcli_request_destroy(struct smbcli_request *req) } status = req->status; - talloc_free(req); + + if (!req->do_not_free) { + talloc_free(req); + } + return status; } |