The Samba-Bugzilla – Attachment 5192 Details for
Bug 7045
Bad (non memory copying) interfaces in smbc_setXXXX calls.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Complete patch for master.
look (text/plain), 3.28 KB, created by
Jeremy Allison
on 2010-01-15 19:36:27 UTC
(
hide
)
Description:
Complete patch for master.
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2010-01-15 19:36:27 UTC
Size:
3.28 KB
patch
obsolete
>diff --git a/source3/libsmb/libsmb_context.c b/source3/libsmb/libsmb_context.c >index 78c9a55..336172c 100644 >--- a/source3/libsmb/libsmb_context.c >+++ b/source3/libsmb/libsmb_context.c >@@ -291,13 +291,8 @@ smbc_free_context(SMBCCTX *context, > } > > /* Things we have to clean up */ >- free(smbc_getWorkgroup(context)); > smbc_setWorkgroup(context, NULL); >- >- free(smbc_getNetbiosName(context)); > smbc_setNetbiosName(context, NULL); >- >- free(smbc_getUser(context)); > smbc_setUser(context, NULL); > > DEBUG(3, ("Context %p successfully freed\n", context)); >@@ -533,7 +528,6 @@ SMBCCTX * > smbc_init_context(SMBCCTX *context) > { > int pid; >- char *user = NULL; > > if (!context) { > errno = EBADF; >@@ -569,7 +563,7 @@ smbc_init_context(SMBCCTX *context) > /* > * FIXME: Is this the best way to get the user info? > */ >- user = getenv("USER"); >+ char *user = getenv("USER"); > /* walk around as "guest" if no username can be found */ > if (!user) { > user = SMB_STRDUP("guest"); >@@ -583,6 +577,12 @@ smbc_init_context(SMBCCTX *context) > } > > smbc_setUser(context, user); >+ SAFE_FREE(user); >+ >+ if (!smbc_getUser(context)) { >+ errno = ENOMEM; >+ return NULL; >+ } > } > > if (!smbc_getNetbiosName(context)) { >@@ -615,6 +615,12 @@ smbc_init_context(SMBCCTX *context) > } > > smbc_setNetbiosName(context, netbios_name); >+ SAFE_FREE(netbios_name); >+ >+ if (!smbc_getNetbiosName(context)) { >+ errno = ENOMEM; >+ return NULL; >+ } > } > > DEBUG(1, ("Using netbios name %s.\n", smbc_getNetbiosName(context))); >@@ -636,6 +642,12 @@ smbc_init_context(SMBCCTX *context) > } > > smbc_setWorkgroup(context, workgroup); >+ SAFE_FREE(workgroup); >+ >+ if (!smbc_getWorkgroup(context)) { >+ errno = ENOMEM; >+ return NULL; >+ } > } > > DEBUG(1, ("Using workgroup %s.\n", smbc_getWorkgroup(context))); >diff --git a/source3/libsmb/libsmb_setget.c b/source3/libsmb/libsmb_setget.c >index fc3f321..791b4cd 100644 >--- a/source3/libsmb/libsmb_setget.c >+++ b/source3/libsmb/libsmb_setget.c >@@ -39,7 +39,10 @@ smbc_getNetbiosName(SMBCCTX *c) > void > smbc_setNetbiosName(SMBCCTX *c, char * netbios_name) > { >- c->netbios_name = netbios_name; >+ SAFE_FREE(c->netbios_name); >+ if (netbios_name) { >+ c->netbios_name = SMB_STRDUP(netbios_name); >+ } > } > > /** Get the workgroup used for making connections */ >@@ -53,7 +56,10 @@ smbc_getWorkgroup(SMBCCTX *c) > void > smbc_setWorkgroup(SMBCCTX *c, char * workgroup) > { >- c->workgroup = workgroup; >+ SAFE_FREE(c->workgroup); >+ if (workgroup) { >+ c->workgroup = SMB_STRDUP(workgroup); >+ } > } > > /** Get the username used for making connections */ >@@ -67,7 +73,10 @@ smbc_getUser(SMBCCTX *c) > void > smbc_setUser(SMBCCTX *c, char * user) > { >- c->user = user; >+ SAFE_FREE(c->user); >+ if (user) { >+ c->user = SMB_STRDUP(user); >+ } > } > > /** Get the debug level */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 7045
:
5191
| 5192 |
5193
|
5194
|
5195