Skip to content
Snippets Groups Projects
Commit f35340ec authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Pass a buffer to smb_faddrtoa(), not thread-safe otherwise

smb_faddrtoa() uses a static local buffer if passed NULL and we shouldn't be
doing that from multi-threaded callers.
parent aa228233
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
...@@ -66,6 +66,7 @@ static ulong msgid_serialno(smbmsg_t* msg) ...@@ -66,6 +66,7 @@ static ulong msgid_serialno(smbmsg_t* msg)
char* ftn_msgid(sub_t *sub, smbmsg_t* msg, char* msgid, size_t maxlen) char* ftn_msgid(sub_t *sub, smbmsg_t* msg, char* msgid, size_t maxlen)
{ {
static char msgidbuf[256]; static char msgidbuf[256];
char faddrbuf[64];
if(msgid == NULL) { if(msgid == NULL) {
msgid = msgidbuf; msgid = msgidbuf;
...@@ -81,7 +82,7 @@ char* ftn_msgid(sub_t *sub, smbmsg_t* msg, char* msgid, size_t maxlen) ...@@ -81,7 +82,7 @@ char* ftn_msgid(sub_t *sub, smbmsg_t* msg, char* msgid, size_t maxlen)
,"%lu.%s@%s %08lx" ,"%lu.%s@%s %08lx"
,msg_number(msg) ,msg_number(msg)
,sub->code ,sub->code
,smb_faddrtoa(&sub->faddr,NULL) ,smb_faddrtoa(&sub->faddr, faddrbuf)
,msgid_serialno(msg) ,msgid_serialno(msg)
); );
...@@ -161,6 +162,7 @@ char* get_replyid(scfg_t* cfg, smb_t* smb, smbmsg_t* msg, char* msgid, size_t ma ...@@ -161,6 +162,7 @@ char* get_replyid(scfg_t* cfg, smb_t* smb, smbmsg_t* msg, char* msgid, size_t ma
BOOL add_msg_ids(scfg_t* cfg, smb_t* smb, smbmsg_t* msg, smbmsg_t* remsg) BOOL add_msg_ids(scfg_t* cfg, smb_t* smb, smbmsg_t* msg, smbmsg_t* remsg)
{ {
char msg_id[256]; char msg_id[256];
char faddrbuf[64];
if(msg->hdr.number == 0) if(msg->hdr.number == 0)
msg->hdr.number = get_new_msg_number(smb); msg->hdr.number = get_new_msg_number(smb);
...@@ -170,7 +172,7 @@ BOOL add_msg_ids(scfg_t* cfg, smb_t* smb, smbmsg_t* msg, smbmsg_t* remsg) ...@@ -170,7 +172,7 @@ BOOL add_msg_ids(scfg_t* cfg, smb_t* smb, smbmsg_t* msg, smbmsg_t* remsg)
if(smb->subnum == INVALID_SUB && msg->to_net.type == NET_FIDO) { if(smb->subnum == INVALID_SUB && msg->to_net.type == NET_FIDO) {
safe_snprintf(msg_id, sizeof(msg_id) safe_snprintf(msg_id, sizeof(msg_id)
,"%s %08lx" ,"%s %08lx"
,smb_faddrtoa(nearest_sysfaddr(cfg, msg->to_net.addr), NULL) ,smb_faddrtoa(nearest_sysfaddr(cfg, msg->to_net.addr), faddrbuf)
,msgid_serialno(msg) ,msgid_serialno(msg)
); );
if(smb_hfield_str(msg, FIDOMSGID, msg_id) != SMB_SUCCESS) if(smb_hfield_str(msg, FIDOMSGID, msg_id) != SMB_SUCCESS)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment