mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
Remove some globals
(This used to be commit 31d0a846db08d845e6cdfd85def4ac1c34031e02)
This commit is contained in:
parent
66af070039
commit
78c6ee0090
@ -1042,6 +1042,9 @@ int d_vfprintf(FILE *f, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);
|
||||
|
||||
int smb_xvasprintf(char **ptr, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);
|
||||
|
||||
int asprintf_strupper_m(char **strp, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
|
||||
char *talloc_asprintf_strupper_m(TALLOC_CTX *t, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
|
||||
|
||||
/* we used to use these fns, but now we have good replacements
|
||||
for snprintf and vsnprintf */
|
||||
#define slprintf snprintf
|
||||
|
@ -506,21 +506,6 @@ int strwicmp(const char *psz1, const char *psz2)
|
||||
return (*psz1 - *psz2);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Convert a string to upper case, but don't modify it.
|
||||
**/
|
||||
|
||||
char *strupper_static(const char *s)
|
||||
{
|
||||
static char *str = NULL;
|
||||
|
||||
SAFE_FREE(str);
|
||||
str = SMB_STRDUP(s);
|
||||
strupper_m(str);
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
Convert a string to "normal" form.
|
||||
**/
|
||||
@ -1147,7 +1132,7 @@ bool in_list(const char *s, const char *list, bool casesensitive)
|
||||
}
|
||||
|
||||
/* this is used to prevent lots of mallocs of size 1 */
|
||||
static const char *null_string = "";
|
||||
static const char null_string[] = "";
|
||||
|
||||
/**
|
||||
Set a string value, allocing the space for the string
|
||||
@ -1561,13 +1546,17 @@ static void split_at_last_component(char *path, char *front, char sep,
|
||||
Write an octal as a string.
|
||||
**/
|
||||
|
||||
const char *octal_string(int i)
|
||||
char *octal_string(int i)
|
||||
{
|
||||
static char ret[64];
|
||||
if (i == -1)
|
||||
return "-1";
|
||||
slprintf(ret, sizeof(ret)-1, "0%o", i);
|
||||
return ret;
|
||||
char *result;
|
||||
if (i == -1) {
|
||||
result = talloc_strdup(talloc_tos(), "-1");
|
||||
}
|
||||
else {
|
||||
result = talloc_asprintf(talloc_tos(), "0%o", i);
|
||||
}
|
||||
SMB_ASSERT(result != NULL);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@ -2552,7 +2541,7 @@ void rfc1738_unescape(char *buf)
|
||||
}
|
||||
}
|
||||
|
||||
static const char *b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
static const char b64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
|
||||
/**
|
||||
* Decode a base64 string into a DATA_BLOB - simple and slow algorithm
|
||||
@ -2860,6 +2849,44 @@ void sprintf_append(TALLOC_CTX *mem_ctx, char **string, ssize_t *len,
|
||||
*string = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* asprintf into a string and strupper_m it after that.
|
||||
*/
|
||||
|
||||
int asprintf_strupper_m(char **strp, const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char *result;
|
||||
int ret;
|
||||
|
||||
va_start(ap, fmt);
|
||||
ret = vasprintf(&result, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (ret == -1)
|
||||
return -1;
|
||||
|
||||
strupper_m(result);
|
||||
*strp = result;
|
||||
return ret;
|
||||
}
|
||||
|
||||
char *talloc_asprintf_strupper_m(TALLOC_CTX *t, const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char *ret;
|
||||
|
||||
va_start(ap, fmt);
|
||||
ret = talloc_vasprintf(t, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (ret == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
strupper_m(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
Returns the substring from src between the first occurrence of
|
||||
the char "front" and the first occurence of the char "back".
|
||||
|
@ -709,7 +709,7 @@ static char *sitename_key(const char *realm)
|
||||
{
|
||||
char *keystr;
|
||||
|
||||
if (asprintf(&keystr, SITENAME_KEY, strupper_static(realm)) == -1) {
|
||||
if (asprintf_strupper_m(&keystr, SITENAME_KEY, realm) == -1) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -693,8 +693,8 @@ NTSTATUS gp_find_file(TALLOC_CTX *mem_ctx,
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
tmp = talloc_asprintf(mem_ctx, "%s/%s/%s", filename,
|
||||
strupper_static(path), suffix);
|
||||
tmp = talloc_asprintf_strupper_m(mem_ctx, "%s/%s/%s", filename, path,
|
||||
suffix);
|
||||
NT_STATUS_HAVE_NO_MEMORY(tmp);
|
||||
|
||||
if (sys_stat(tmp, &sbuf) == 0) {
|
||||
|
@ -265,8 +265,7 @@ static char *DsGetDcName_cache_key(TALLOC_CTX *mem_ctx, const char *domain)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return talloc_asprintf(mem_ctx, DSGETDCNAME_FMT,
|
||||
strupper_static(domain));
|
||||
return talloc_asprintf_strupper_m(mem_ctx, DSGETDCNAME_FMT, domain);
|
||||
}
|
||||
|
||||
/****************************************************************
|
||||
|
@ -98,7 +98,7 @@ static char* namecache_key(const char *name,
|
||||
int name_type)
|
||||
{
|
||||
char *keystr;
|
||||
asprintf(&keystr, NBTKEY_FMT, strupper_static(name), name_type);
|
||||
asprintf_strupper_m(&keystr, NBTKEY_FMT, name, name_type);
|
||||
|
||||
return keystr;
|
||||
}
|
||||
@ -318,8 +318,8 @@ static char *namecache_status_record_key(const char *name,
|
||||
char *keystr;
|
||||
|
||||
print_sockaddr(addr, sizeof(addr), keyip);
|
||||
asprintf(&keystr, "NBT/%s#%02X.%02X.%s",
|
||||
strupper_static(name), name_type1, name_type2, addr);
|
||||
asprintf_strupper_m(&keystr, "NBT/%s#%02X.%02X.%s", name,
|
||||
name_type1, name_type2, addr);
|
||||
return keystr;
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ static char *saf_key(const char *domain)
|
||||
{
|
||||
char *keystr;
|
||||
|
||||
asprintf( &keystr, SAFKEY_FMT, strupper_static(domain) );
|
||||
asprintf_strupper_m(&keystr, SAFKEY_FMT, domain);
|
||||
|
||||
return keystr;
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ bool trustdom_cache_shutdown(void)
|
||||
static char* trustdom_cache_key(const char* name)
|
||||
{
|
||||
char* keystr = NULL;
|
||||
asprintf(&keystr, TDOMKEY_FMT, strupper_static(name));
|
||||
asprintf_strupper_m(&keystr, TDOMKEY_FMT, name);
|
||||
|
||||
return keystr;
|
||||
}
|
||||
|
@ -4240,9 +4240,12 @@ static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
|
||||
fprintf(f, "%c", *(char *)ptr);
|
||||
break;
|
||||
|
||||
case P_OCTAL:
|
||||
fprintf(f, "%s", octal_string(*(int *)ptr));
|
||||
case P_OCTAL: {
|
||||
char *o = octal_string(*(int *)ptr);
|
||||
fprintf(f, "%s", o);
|
||||
TALLOC_FREE(o);
|
||||
break;
|
||||
}
|
||||
|
||||
case P_LIST:
|
||||
if ((char ***)ptr && *(char ***)ptr) {
|
||||
|
@ -36,10 +36,10 @@ static void create_wks_info_100(struct wkssvc_NetWkstaInfo100 *info100)
|
||||
info100->version_major = lp_major_announce_version();
|
||||
info100->version_minor = lp_minor_announce_version();
|
||||
|
||||
info100->server_name = talloc_strdup(
|
||||
info100, strupper_static(global_myname()));
|
||||
info100->domain_name = talloc_strdup(
|
||||
info100, strupper_static(lp_workgroup()));
|
||||
info100->server_name = talloc_asprintf_strupper_m(
|
||||
info100, "%s", global_myname());
|
||||
info100->domain_name = talloc_asprintf_strupper_m(
|
||||
info100, "%s", lp_workgroup());
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -494,9 +494,11 @@ static char *parm_valstr(TALLOC_CTX *ctx, struct parm_struct *parm,
|
||||
}
|
||||
}
|
||||
break;
|
||||
case P_OCTAL:
|
||||
valstr = talloc_asprintf(ctx, "%s", octal_string(*(int *)ptr));
|
||||
case P_OCTAL: {
|
||||
char *o = octal_string(*(int *)ptr);
|
||||
valstr = talloc_move(ctx, &o);
|
||||
break;
|
||||
}
|
||||
case P_LIST:
|
||||
valstr = talloc_strdup(ctx, "");
|
||||
if ((char ***)ptr && *(char ***)ptr) {
|
||||
|
@ -324,12 +324,19 @@ static void show_parameter(int snum, struct parm_struct *parm)
|
||||
_("Set Default"), make_parm_name(parm->label),(int)(parm->def.ivalue));
|
||||
break;
|
||||
|
||||
case P_OCTAL:
|
||||
printf("<input type=text size=8 name=\"parm_%s\" value=%s>", make_parm_name(parm->label), octal_string(*(int *)ptr));
|
||||
printf("<input type=button value=\"%s\" onClick=\"swatform.parm_%s.value=\'%s\'\">",
|
||||
_("Set Default"), make_parm_name(parm->label),
|
||||
octal_string((int)(parm->def.ivalue)));
|
||||
case P_OCTAL: {
|
||||
char *o;
|
||||
o = octal_string(*(int *)ptr);
|
||||
printf("<input type=text size=8 name=\"parm_%s\" value=%s>",
|
||||
make_parm_name(parm->label), o);
|
||||
TALLOC_FREE(o);
|
||||
o = octal_string((int)(parm->def.ivalue));
|
||||
printf("<input type=button value=\"%s\" "
|
||||
"onClick=\"swatform.parm_%s.value=\'%s\'\">",
|
||||
_("Set Default"), make_parm_name(parm->label), o);
|
||||
TALLOC_FREE(o);
|
||||
break;
|
||||
}
|
||||
|
||||
case P_ENUM:
|
||||
printf("<select name=\"parm_%s\">",make_parm_name(parm->label));
|
||||
|
@ -1466,8 +1466,8 @@ static void winbindd_set_locator_kdc_env(const struct winbindd_domain *domain)
|
||||
return;
|
||||
}
|
||||
|
||||
if (asprintf(&var, "%s_%s", WINBINDD_LOCATOR_KDC_ADDRESS,
|
||||
strupper_static(domain->alt_name)) == -1) {
|
||||
if (asprintf_strupper_m(&var, "%s_%s", WINBINDD_LOCATOR_KDC_ADDRESS,
|
||||
domain->alt_name) == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1503,8 +1503,8 @@ void winbindd_unset_locator_kdc_env(const struct winbindd_domain *domain)
|
||||
return;
|
||||
}
|
||||
|
||||
if (asprintf(&var, "%s_%s", WINBINDD_LOCATOR_KDC_ADDRESS,
|
||||
strupper_static(domain->alt_name)) == -1) {
|
||||
if (asprintf_strupper_m(&var, "%s_%s", WINBINDD_LOCATOR_KDC_ADDRESS,
|
||||
domain->alt_name) == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user