mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
r24949: Remove some static buffers
(This used to be commit df648d47ff3c4e24f439fda839653bda98323100)
This commit is contained in:
parent
faefb22c61
commit
ff0947fbed
@ -263,7 +263,7 @@ struct api_longvar {
|
||||
char* (*fn)( void );
|
||||
};
|
||||
|
||||
struct api_longvar longvar_table[] = {
|
||||
static struct api_longvar longvar_table[] = {
|
||||
{ "DomainSID", longvar_domainsid },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
@ -339,7 +339,7 @@ static char *realloc_expand_longvar(char *str, char *p)
|
||||
|
||||
static char *automount_path(const char *user_name)
|
||||
{
|
||||
static pstring server_path;
|
||||
pstring server_path;
|
||||
|
||||
/* use the passwd entry as the default */
|
||||
/* this will be the default if WITH_AUTOMOUNT is not used or fails */
|
||||
@ -368,7 +368,7 @@ static char *automount_path(const char *user_name)
|
||||
|
||||
DEBUG(4,("Home server path: %s\n", server_path));
|
||||
|
||||
return server_path;
|
||||
return talloc_strdup(talloc_tos(), server_path);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
@ -379,7 +379,7 @@ static char *automount_path(const char *user_name)
|
||||
|
||||
static const char *automount_server(const char *user_name)
|
||||
{
|
||||
static pstring server_name;
|
||||
pstring server_name;
|
||||
const char *local_machine_name = get_local_machine_name();
|
||||
|
||||
/* use the local machine name as the default */
|
||||
@ -405,7 +405,7 @@ static const char *automount_server(const char *user_name)
|
||||
|
||||
DEBUG(4,("Home server: %s\n", server_name));
|
||||
|
||||
return server_name;
|
||||
return talloc_strdup(talloc_tos(), server_name);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
@ -303,13 +303,13 @@ time_t pull_dos_date3(const uint8_t *date_ptr, int zone_offset)
|
||||
|
||||
char *http_timestring(time_t t)
|
||||
{
|
||||
static fstring buf;
|
||||
fstring buf;
|
||||
struct tm *tm = localtime(&t);
|
||||
|
||||
if (t == TIME_T_MAX) {
|
||||
slprintf(buf,sizeof(buf)-1,"never");
|
||||
fstrcpy(buf, "never");
|
||||
} else if (!tm) {
|
||||
slprintf(buf,sizeof(buf)-1,"%ld seconds since the Epoch",(long)t);
|
||||
fstr_sprintf(buf, "%ld seconds since the Epoch", (long)t);
|
||||
} else {
|
||||
#ifndef HAVE_STRFTIME
|
||||
const char *asct = asctime(tm);
|
||||
@ -321,7 +321,7 @@ char *http_timestring(time_t t)
|
||||
strftime(buf, sizeof(buf)-1, "%a, %d %b %Y %H:%M:%S %Z", tm);
|
||||
#endif /* !HAVE_STRFTIME */
|
||||
}
|
||||
return buf;
|
||||
return talloc_strdup(talloc_tos(), buf);
|
||||
}
|
||||
|
||||
|
||||
@ -689,7 +689,7 @@ int set_server_zone_offset(time_t t)
|
||||
|
||||
char *current_timestring(BOOL hires)
|
||||
{
|
||||
static fstring TimeBuf;
|
||||
fstring TimeBuf;
|
||||
struct timeval tp;
|
||||
time_t t;
|
||||
struct tm *tm;
|
||||
@ -739,7 +739,7 @@ char *current_timestring(BOOL hires)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return(TimeBuf);
|
||||
return talloc_strdup(talloc_tos(), TimeBuf);
|
||||
}
|
||||
|
||||
|
||||
@ -1423,8 +1423,6 @@ const char *time_to_asc(const time_t t)
|
||||
|
||||
const char *display_time(NTTIME nttime)
|
||||
{
|
||||
static fstring string;
|
||||
|
||||
float high;
|
||||
float low;
|
||||
int sec;
|
||||
@ -1452,8 +1450,8 @@ const char *display_time(NTTIME nttime)
|
||||
mins=(sec - (days*60*60*24) - (hours*60*60) ) / 60;
|
||||
secs=sec - (days*60*60*24) - (hours*60*60) - (mins*60);
|
||||
|
||||
fstr_sprintf(string, "%u days, %u hours, %u minutes, %u seconds", days, hours, mins, secs);
|
||||
return (string);
|
||||
return talloc_asprintf(talloc_tos(), "%u days, %u hours, %u minutes, "
|
||||
"%u seconds", days, hours, mins, secs);
|
||||
}
|
||||
|
||||
BOOL nt_time_is_set(const NTTIME *nt)
|
||||
|
@ -456,7 +456,7 @@ SMB_OFF_T get_file_size(char *file_name)
|
||||
|
||||
char *attrib_string(uint16 mode)
|
||||
{
|
||||
static fstring attrstr;
|
||||
fstring attrstr;
|
||||
|
||||
attrstr[0] = 0;
|
||||
|
||||
@ -467,7 +467,7 @@ char *attrib_string(uint16 mode)
|
||||
if (mode & aSYSTEM) fstrcat(attrstr,"S");
|
||||
if (mode & aRONLY) fstrcat(attrstr,"R");
|
||||
|
||||
return(attrstr);
|
||||
return talloc_strdup(talloc_tos(), attrstr);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
@ -1578,17 +1578,17 @@ BOOL process_exists_by_pid(pid_t pid)
|
||||
|
||||
const char *uidtoname(uid_t uid)
|
||||
{
|
||||
static fstring name;
|
||||
fstring name;
|
||||
struct passwd *pass;
|
||||
|
||||
pass = getpwuid_alloc(NULL, uid);
|
||||
pass = getpwuid_alloc(talloc_tos(), uid);
|
||||
if (pass) {
|
||||
fstrcpy(name, pass->pw_name);
|
||||
TALLOC_FREE(pass);
|
||||
} else {
|
||||
slprintf(name, sizeof(name) - 1, "%ld",(long int)uid);
|
||||
}
|
||||
return name;
|
||||
return talloc_strdup(talloc_tos(), name);
|
||||
}
|
||||
|
||||
|
||||
@ -1598,14 +1598,17 @@ const char *uidtoname(uid_t uid)
|
||||
|
||||
char *gidtoname(gid_t gid)
|
||||
{
|
||||
static fstring name;
|
||||
fstring name;
|
||||
struct group *grp;
|
||||
|
||||
grp = getgrgid(gid);
|
||||
if (grp)
|
||||
return(grp->gr_name);
|
||||
slprintf(name,sizeof(name) - 1, "%d",(int)gid);
|
||||
return(name);
|
||||
if (grp) {
|
||||
fstrcpy(name, grp->gr_name);
|
||||
}
|
||||
else {
|
||||
slprintf(name,sizeof(name) - 1, "%d",(int)gid);
|
||||
}
|
||||
return talloc_strdup(talloc_tos(), name);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
@ -1859,15 +1862,7 @@ const char *readdirname(SMB_STRUCT_DIR *p)
|
||||
dname = dname - 2;
|
||||
#endif
|
||||
|
||||
{
|
||||
static pstring buf;
|
||||
int len = NAMLEN(ptr);
|
||||
memcpy(buf, dname, len);
|
||||
buf[len] = 0;
|
||||
dname = buf;
|
||||
}
|
||||
|
||||
return(dname);
|
||||
return talloc_strdup(talloc_tos(), dname);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
@ -2629,7 +2624,7 @@ char *myhostname(void)
|
||||
|
||||
char *lock_path(const char *name)
|
||||
{
|
||||
static pstring fname;
|
||||
pstring fname;
|
||||
|
||||
pstrcpy(fname,lp_lockdir());
|
||||
trim_char(fname,'\0','/');
|
||||
@ -2640,7 +2635,7 @@ char *lock_path(const char *name)
|
||||
pstrcat(fname,"/");
|
||||
pstrcat(fname,name);
|
||||
|
||||
return fname;
|
||||
return talloc_strdup(talloc_tos(), fname);
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
@ -2649,7 +2644,7 @@ char *lock_path(const char *name)
|
||||
|
||||
char *pid_path(const char *name)
|
||||
{
|
||||
static pstring fname;
|
||||
pstring fname;
|
||||
|
||||
pstrcpy(fname,lp_piddir());
|
||||
trim_char(fname,'\0','/');
|
||||
@ -2660,7 +2655,7 @@ char *pid_path(const char *name)
|
||||
pstrcat(fname,"/");
|
||||
pstrcat(fname,name);
|
||||
|
||||
return fname;
|
||||
return talloc_strdup(talloc_tos(), fname);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2673,9 +2668,7 @@ char *pid_path(const char *name)
|
||||
|
||||
char *lib_path(const char *name)
|
||||
{
|
||||
static pstring fname;
|
||||
fstr_sprintf(fname, "%s/%s", dyn_LIBDIR, name);
|
||||
return fname;
|
||||
return talloc_asprintf(talloc_tos(), "%s/%s", dyn_LIBDIR, name);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2692,29 +2685,18 @@ const char *shlib_ext(void)
|
||||
/*******************************************************************
|
||||
Given a filename - get its directory name
|
||||
NB: Returned in static storage. Caveats:
|
||||
o Not safe in thread environment.
|
||||
o Caller must not free.
|
||||
o If caller wishes to preserve, they should copy.
|
||||
********************************************************************/
|
||||
|
||||
char *parent_dirname(const char *path)
|
||||
{
|
||||
static pstring dirpath;
|
||||
char *p;
|
||||
char *parent;
|
||||
|
||||
if (!path)
|
||||
return(NULL);
|
||||
|
||||
pstrcpy(dirpath, path);
|
||||
p = strrchr_m(dirpath, '/'); /* Find final '/', if any */
|
||||
if (!p) {
|
||||
pstrcpy(dirpath, "."); /* No final "/", so dir is "." */
|
||||
} else {
|
||||
if (p == dirpath)
|
||||
++p; /* For root "/", leave "/" in place */
|
||||
*p = '\0';
|
||||
if (!parent_dirname_talloc(talloc_tos(), path, &parent, NULL)) {
|
||||
return NULL;
|
||||
}
|
||||
return dirpath;
|
||||
|
||||
return parent;
|
||||
}
|
||||
|
||||
BOOL parent_dirname_talloc(TALLOC_CTX *mem_ctx, const char *dir,
|
||||
@ -3179,9 +3161,9 @@ struct server_id interpret_pid(const char *pid_string)
|
||||
#endif
|
||||
}
|
||||
|
||||
char *procid_str_static(const struct server_id *pid)
|
||||
char *procid_str(TALLOC_CTX *mem_ctx, const struct server_id *pid)
|
||||
{
|
||||
static fstring str;
|
||||
fstring str;
|
||||
#ifdef CLUSTER_SUPPORT
|
||||
if (pid->vnn == NONCLUSTER_VNN) {
|
||||
fstr_sprintf(str, "%d", (int)pid->pid);
|
||||
@ -3192,12 +3174,12 @@ char *procid_str_static(const struct server_id *pid)
|
||||
#else
|
||||
fstr_sprintf(str, "%d", (int)pid->pid);
|
||||
#endif
|
||||
return str;
|
||||
return talloc_strdup(mem_ctx, str);
|
||||
}
|
||||
|
||||
char *procid_str(TALLOC_CTX *mem_ctx, const struct server_id *pid)
|
||||
char *procid_str_static(const struct server_id *pid)
|
||||
{
|
||||
return talloc_strdup(mem_ctx, procid_str_static(pid));
|
||||
return procid_str(talloc_tos(), pid);
|
||||
}
|
||||
|
||||
BOOL procid_valid(const struct server_id *pid)
|
||||
|
@ -439,9 +439,9 @@ uint32 regval_dword( REGISTRY_VALUE *val )
|
||||
|
||||
char* regval_sz( REGISTRY_VALUE *val )
|
||||
{
|
||||
static pstring data;
|
||||
pstring data;
|
||||
|
||||
rpcstr_pull( data, regval_data_p(val), sizeof(data), regval_size(val), 0 );
|
||||
|
||||
return data;
|
||||
return talloc_strdup(talloc_tos(), data);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ PERF_OBJECT_TYPE *_reg_perfcount_find_obj(PERF_DATA_BLOCK *block, int objind);
|
||||
|
||||
static char* counters_directory( const char *dbname )
|
||||
{
|
||||
static pstring fname;
|
||||
pstring fname;
|
||||
fstring path;
|
||||
|
||||
if ( !dbname )
|
||||
@ -47,7 +47,7 @@ static char* counters_directory( const char *dbname )
|
||||
|
||||
pstrcpy( fname, lock_path( path ) );
|
||||
|
||||
return fname;
|
||||
return talloc_strdup(talloc_tos(), fname);
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
|
@ -102,7 +102,7 @@ void normalize_reg_path( pstring keyname )
|
||||
|
||||
char* reg_remaining_path( const char *key )
|
||||
{
|
||||
static pstring new_path;
|
||||
pstring new_path;
|
||||
char *p;
|
||||
|
||||
if ( !key || !*key )
|
||||
@ -121,7 +121,7 @@ char* reg_remaining_path( const char *key )
|
||||
else
|
||||
p++;
|
||||
|
||||
return p;
|
||||
return talloc_strdup(talloc_tos(), p);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
|
@ -42,7 +42,7 @@ static struct svc_state_msg state_msg_table[] = {
|
||||
********************************************************************/
|
||||
const char* svc_status_string( uint32 state )
|
||||
{
|
||||
static fstring msg;
|
||||
fstring msg;
|
||||
int i;
|
||||
|
||||
fstr_sprintf( msg, "Unknown State [%d]", state );
|
||||
@ -54,7 +54,7 @@ const char* svc_status_string( uint32 state )
|
||||
}
|
||||
}
|
||||
|
||||
return msg;
|
||||
return talloc_strdup(talloc_tos(), msg);
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
|
@ -148,7 +148,7 @@ static char *get_common_service_dispname( const char *servicename )
|
||||
|
||||
static char* cleanup_string( const char *string )
|
||||
{
|
||||
static pstring clean;
|
||||
pstring clean;
|
||||
char *begin, *end;
|
||||
|
||||
pstrcpy( clean, string );
|
||||
@ -172,7 +172,7 @@ static char* cleanup_string( const char *string )
|
||||
end--;
|
||||
}
|
||||
|
||||
return begin;
|
||||
return talloc_strdup(talloc_tos(), begin);
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
|
@ -116,18 +116,16 @@ static int StrlenExpanded(connection_struct *conn, int snum, char *s)
|
||||
|
||||
static char *Expand(connection_struct *conn, int snum, char *s)
|
||||
{
|
||||
static pstring buf;
|
||||
pstring buf;
|
||||
if (!s) {
|
||||
return NULL;
|
||||
}
|
||||
StrnCpy(buf,s,sizeof(buf)/2);
|
||||
pstring_sub(buf,"%S",lp_servicename(snum));
|
||||
standard_sub_advanced(lp_servicename(SNUM(conn)), conn->user,
|
||||
conn->connectpath, conn->gid,
|
||||
get_current_username(),
|
||||
current_user_info.domain,
|
||||
buf, sizeof(buf));
|
||||
return &buf[0];
|
||||
return talloc_sub_advanced(talloc_tos(), lp_servicename(SNUM(conn)),
|
||||
conn->user, conn->connectpath, conn->gid,
|
||||
get_current_username(),
|
||||
current_user_info.domain, buf);
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
|
Loading…
x
Reference in New Issue
Block a user