summaryrefslogtreecommitdiff
path: root/mysys/my_getwd.c
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2010-06-01 21:52:20 +0200
committerSergei Golubchik <sergii@pisem.net>2010-06-01 21:52:20 +0200
commitffc8f62b08982cc1f2fabf8b4b38bd124c115a97 (patch)
treeda42637b1ae9402a7436b715f9c0db57cdddc87a /mysys/my_getwd.c
parent6b157f6be3cb056a93eb925df3880098c871b32a (diff)
parent0fc39acb8125fae95062e7b680b022b075a308c3 (diff)
downloadmariadb-git-ffc8f62b08982cc1f2fabf8b4b38bd124c115a97.tar.gz
merge 5.1->5.2
Diffstat (limited to 'mysys/my_getwd.c')
-rw-r--r--mysys/my_getwd.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/mysys/my_getwd.c b/mysys/my_getwd.c
index e0c5b94b53e..e6b867e2753 100644
--- a/mysys/my_getwd.c
+++ b/mysys/my_getwd.c
@@ -50,11 +50,16 @@ int my_getwd(char * buf, size_t size, myf MyFlags)
DBUG_PRINT("my",("buf: 0x%lx size: %u MyFlags %d",
(long) buf, (uint) size, MyFlags));
+ if (size < 1)
+ return(-1);
+
if (curr_dir[0]) /* Current pos is saved here */
VOID(strmake(buf,&curr_dir[0],size-1));
else
{
#if defined(HAVE_GETCWD)
+ if (size < 2)
+ return(-1);
if (!getcwd(buf,(uint) (size-2)) && MyFlags & MY_WME)
{
my_errno=errno;
@@ -68,6 +73,8 @@ int my_getwd(char * buf, size_t size, myf MyFlags)
strmake(buf,pathname,size-1);
}
#elif defined(VMS)
+ if (size < 2)
+ return(-1);
if (!getcwd(buf,size-2,1) && MyFlags & MY_WME)
{
my_errno=errno;