From f1fa0d3b9dfef17a5129b53695fa454f1a8b8b68 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 11 Nov 2019 13:53:33 +1300 Subject: [PATCH] librpc: Use the fact that file_save() now uses O_EXCL in dcerpc_log_packet() This avoids a race with file_exist() and demostrates a better way to use this function. Signed-off-by: Andrew Bartlett Reviewed-by: Andreas Schneider Autobuild-User(master): Andreas Schneider Autobuild-Date(master): Fri Nov 15 18:48:27 UTC 2019 on sn-devel-184 --- librpc/rpc/dcerpc_util.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/librpc/rpc/dcerpc_util.c b/librpc/rpc/dcerpc_util.c index 01dc2e7061d..1fb3fa72075 100644 --- a/librpc/rpc/dcerpc_util.c +++ b/librpc/rpc/dcerpc_util.c @@ -1425,19 +1425,19 @@ void dcerpc_log_packet(const char *lockdir, for (i=0;iname, opnum, i, (flags&NDR_IN)?"in":"out"); if (ret == -1) { return; } - if (!file_exist(name)) { - if (file_save(name, pkt->data, pkt->length)) { - DEBUG(10,("Logged rpc packet to %s\n", name)); - } - free(name); + + saved = file_save(name, pkt->data, pkt->length); + free(name); + if (saved) { + DBG_DEBUG("Logged rpc packet to %s\n", name); break; } - free(name); } } -- 2.47.3