summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2014-09-12 08:46:06 -0700
committerDavid Disseldorp <ddiss@samba.org>2014-09-16 01:56:54 +0200
commit6bce3d81e146bc6adeb7cff124a78f818aa6fbe0 (patch)
treecd5a393d863623ff2405d8246a3af918b178056f
parentc56a88da6ec7be1a0f042270a5750c4834a9e95a (diff)
downloadsamba-6bce3d81e146bc6adeb7cff124a78f818aa6fbe0.tar.gz
samba-6bce3d81e146bc6adeb7cff124a78f818aa6fbe0.tar.xz
samba-6bce3d81e146bc6adeb7cff124a78f818aa6fbe0.zip
s3: utils: Don't directly manipulate errno inside strupper_m().
Let the internal character conversion routines set it. Caller code paths don't depend on this (checked by David Disseldorp ddiss@suse.de). Bug 10775 - smbd crashes when accessing garbage filenames https://bugzilla.samba.org/show_bug.cgi?id=10775 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: David Disseldorp <ddiss@samba.org>
-rw-r--r--source3/lib/util_str.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c
index cfc495d670..2b0830c2ff 100644
--- a/source3/lib/util_str.c
+++ b/source3/lib/util_str.c
@@ -551,7 +551,6 @@ _PUBLIC_ void strupper_m(char *s)
bool strupper_m(char *s)
{
size_t len;
- int errno_save;
bool ret = false;
/* this is quite a common operation, so we want it to be
@@ -570,14 +569,11 @@ bool strupper_m(char *s)
/* I assume that lowercased string takes the same number of bytes
* as source string even in multibyte encoding. (VIV) */
len = strlen(s) + 1;
- errno_save = errno;
- errno = 0;
ret = unix_strupper(s,len,s,len);
/* Catch mb conversion errors that may not terminate. */
- if (errno) {
+ if (!ret) {
s[len-1] = '\0';
}
- errno = errno_save;
return ret;
}