summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2007-09-12 21:48:20 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:30:41 -0500
commit12f61e09d943ea7fc4149166077507b5b0b3b4e7 (patch)
tree8382cf512a97b3159c3cda38eb952c85f8f2237f /source3/lib
parent4754b0ec65a3be4380f3216bd3f59c1906db259b (diff)
downloadsamba-12f61e09d943ea7fc4149166077507b5b0b3b4e7.tar.gz
samba-12f61e09d943ea7fc4149166077507b5b0b3b4e7.tar.bz2
samba-12f61e09d943ea7fc4149166077507b5b0b3b4e7.zip
r25117: The mega-patch Jerry was waiting for. Remove all pstrings from
the main server code paths. We should now be able to cope with paths up to PATH_MAX length now. Final job will be to add the TALLOC_CTX * parameter to unix_convert to make it explicit (for Volker). Jeremy. (This used to be commit 7f0db75fb0f24873577dcb758a2ecee74fdc4297)
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/charcnv.c6
-rw-r--r--source3/lib/system.c4
-rw-r--r--source3/lib/util.c16
3 files changed, 18 insertions, 8 deletions
diff --git a/source3/lib/charcnv.c b/source3/lib/charcnv.c
index 4e3b7cba62..5e265234e6 100644
--- a/source3/lib/charcnv.c
+++ b/source3/lib/charcnv.c
@@ -1106,7 +1106,11 @@ static size_t pull_ascii_base_talloc(TALLOC_CTX *ctx,
}
/* Ensure we don't use an insane length from the client. */
if (src_len >= 1024*1024) {
- smb_panic("Bad src length in pull_ascii_base_talloc\n");
+ char *msg = talloc_asprintf(ctx,
+ "Bad src length (%u) in "
+ "pull_ascii_base_talloc",
+ src_len);
+ smb_panic(msg);
}
}
diff --git a/source3/lib/system.c b/source3/lib/system.c
index 9cef818fab..6c79b362a8 100644
--- a/source3/lib/system.c
+++ b/source3/lib/system.c
@@ -573,7 +573,11 @@ char *sys_getwd(char *s)
{
char *wd;
#ifdef HAVE_GETCWD
+#ifdef PATH_MAX
+ wd = (char *)getcwd(s, PATH_MAX);
+#else
wd = (char *)getcwd(s, sizeof (pstring));
+#endif
#else
wd = (char *)getwd(s);
#endif
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 5314239e07..2d34371ab3 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -1578,20 +1578,22 @@ BOOL process_exists_by_pid(pid_t pid)
const char *uidtoname(uid_t uid)
{
- fstring name;
- struct passwd *pass;
+ TALLOC_CTX *ctx = talloc_tos();
+ char *name = NULL;
+ struct passwd *pass = NULL;
- pass = getpwuid_alloc(talloc_tos(), uid);
+ pass = getpwuid_alloc(ctx,uid);
if (pass) {
- fstrcpy(name, pass->pw_name);
+ name = talloc_strdup(ctx,pass->pw_name);
TALLOC_FREE(pass);
} else {
- slprintf(name, sizeof(name) - 1, "%ld",(long int)uid);
+ name = talloc_asprintf(ctx,
+ "%ld",
+ (long int)uid);
}
- return talloc_strdup(talloc_tos(), name);
+ return name;
}
-
/*******************************************************************
Convert a gid into a group name.
********************************************************************/