diff --git a/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp b/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp index f53bfe8e9cc7e241a80e3268987e6ffdf080af77..e81604baa700004e6dab38dc30704bf61a177a80 100644 --- a/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp @@ -322,7 +322,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ArrayJanitor<char> janText(newSrc); // Use a local buffer that is big enough for the largest legal path - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; //get the absolute path char* retPath = realpath(newSrc, &absPath[0]); @@ -354,10 +354,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/BeOS/BeOSPlatformUtils.cpp b/src/xercesc/util/Platforms/BeOS/BeOSPlatformUtils.cpp index c04c143a910eb0dd53a847d5039feb41d351885b..bd56f6d6ef9f9f606862f9d35b160a18a746a2a8 100644 --- a/src/xercesc/util/Platforms/BeOS/BeOSPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/BeOS/BeOSPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.6 2003/04/25 17:18:53 peiyongz + * throw exception if getcwd() fails + * * Revision 1.5 2003/04/24 02:52:34 peiyongz * Logical Path Resolution * @@ -378,7 +381,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ArrayJanitor<char> janText(newSrc); // Use a local buffer that is big enough for the largest legal path - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; // get the absolute path char* retPath = realpath(newSrc, &absPath[0]); @@ -409,10 +412,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/FreeBSD/FreeBSDPlatformUtils.cpp b/src/xercesc/util/Platforms/FreeBSD/FreeBSDPlatformUtils.cpp index c1ac18c97668453eb5445c63e34cc713879a9033..d4a454a867c20650eb7f73227c6351f3e60994c4 100644 --- a/src/xercesc/util/Platforms/FreeBSD/FreeBSDPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/FreeBSD/FreeBSDPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.12 2003/04/25 17:19:10 peiyongz + * throw exception if getcwd() fails + * * Revision 1.11 2003/04/24 02:53:29 peiyongz * Logical Path Resolution * @@ -414,7 +417,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ArrayJanitor<char> janText(newSrc); // Use a local buffer that is big enough for the largest legal path - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; // get the absolute path char* retPath = realpath(newSrc, &absPath[0]); @@ -445,10 +448,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/HPUX/HPPlatformUtils.cpp b/src/xercesc/util/Platforms/HPUX/HPPlatformUtils.cpp index b06d4b38b27a8a1227c10f525bfa3d66c08cceca..7e5b703b78075c3251797dec9f892a5fee3164ef 100644 --- a/src/xercesc/util/Platforms/HPUX/HPPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/HPUX/HPPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.12 2003/04/25 17:19:26 peiyongz + * throw exception if getcwd() fails + * * Revision 1.11 2003/04/24 02:53:52 peiyongz * Logical Path Resolution * @@ -459,7 +462,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ArrayJanitor<char> janText(newSrc); // Use a local buffer that is big enough for the largest legal path - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; //get the absolute path char* retPath = realpath(newSrc, &absPath[0]); @@ -491,10 +494,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp b/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp index 325ef34ec255c75fcb074ada9cc096226f097ae2..24b92aebd991f90774f8d0fdb251c7c2890b66c7 100644 --- a/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.11 2003/04/25 17:19:40 peiyongz + * throw exception if getcwd() fails + * * Revision 1.10 2003/04/24 02:54:24 peiyongz * Logical Path Resolution * @@ -431,7 +434,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ArrayJanitor<char> janText(newSrc); // Use a local buffer that is big enough for the largest legal path - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; // get the absolute path char* retPath = realpath(newSrc, &absPath[0]); @@ -462,10 +465,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/Linux/LinuxPlatformUtils.cpp b/src/xercesc/util/Platforms/Linux/LinuxPlatformUtils.cpp index f3a4d48bbcca884013e1dbf49e5883ee11aa1ecd..119c12c6c683e8d309577da50dffeb89225b31c2 100644 --- a/src/xercesc/util/Platforms/Linux/LinuxPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/Linux/LinuxPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.15 2003/04/25 17:19:53 peiyongz + * throw exception if getcwd() fails + * * Revision 1.14 2003/04/24 02:54:46 peiyongz * Logical Path Resolution * @@ -474,7 +477,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ArrayJanitor<char> janText(newSrc); // Use a local buffer that is big enough for the largest legal path - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; // get the absolute path char* retPath = realpath(newSrc, &absPath[0]); @@ -505,10 +508,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/OS400/OS400PlatformUtils.cpp b/src/xercesc/util/Platforms/OS400/OS400PlatformUtils.cpp index 043a10315dccf2378d8bae19cd38ffd5182b0edb..6dc79280cc1b32897375806373153c650247f8a5 100644 --- a/src/xercesc/util/Platforms/OS400/OS400PlatformUtils.cpp +++ b/src/xercesc/util/Platforms/OS400/OS400PlatformUtils.cpp @@ -396,7 +396,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) char* newSrc = XMLString::transcode(srcPath); ArrayJanitor<char> janText(newSrc); // Use a local buffer that is big enough for the largest legal path - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; //get the absolute path char* retPath = realpath(newSrc, &absPath[0]); @@ -428,10 +428,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp b/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp index 3e06d65c5036249052319d04494071f6d2648599..db6a21482acc6fe10fec03cbe1f18187ea9efea8 100644 --- a/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.7 2003/04/25 17:20:11 peiyongz + * throw exception if getcwd() fails + * * Revision 1.6 2003/04/24 02:55:58 peiyongz * Logical Path Resolution * @@ -386,10 +389,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp b/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp index 64a30dd47bee613a69831719c0ad3f90a4f2f491..583307f2dd17975c40ffaf84b242bc06153bd19f 100644 --- a/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp @@ -227,7 +227,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // char* newSrc = XMLString::transcode(srcPath); ArrayJanitor<char> janText(newSrc); - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; char* retPath = realpath(newSrc, &absPath[0]); @@ -248,10 +248,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp b/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp index fd777065416dbb7751c4e10919de940d79c7e223..a56cb3a4af467b9bebc12172f79bc26277feb34c 100644 --- a/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp @@ -344,7 +344,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ArrayJanitor<char> janText(newSrc); // Use a local buffer that is big enough for the largest legal path - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; //get the absolute path char* retPath = realpath(newSrc, &absPath[0]); @@ -375,10 +375,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp b/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp index 99ea0fb52a4a9bcebb5cba3b535690fde0da8a41..065ce4719bb731df042ebe181129fd52b616cce7 100644 --- a/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp +++ b/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp @@ -343,7 +343,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ArrayJanitor<char> janText(newSrc); // Use a local buffer that is big enough for the largest legal path - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; //get the absolute path char* retPath = realpath(newSrc, &absPath[0]); @@ -375,10 +375,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp b/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp index 609e13aa519bc1ea45e3f3ab32053b8c208c4261..92c3fd453d794ab9cb3b742368dc474eaec0dbd4 100644 --- a/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp +++ b/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.9 2003/04/25 17:21:31 peiyongz + * throw exception if getcwd() fails + * * Revision 1.8 2003/04/24 02:59:20 peiyongz * Logical Path Resolution * @@ -405,7 +408,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ArrayJanitor<char> janText(newSrc); // Use a local buffer that is big enough for the largest legal path - char absPath[PATH_MAX]; + char absPath[PATH_MAX + 1]; //get the absolute path char* retPath = realpath(newSrc, &absPath[0]); @@ -437,10 +440,16 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) XMLCh* XMLPlatformUtils::getCurrentDirectory() { - char *tempDir = getcwd(NULL, PATH_MAX+1); - XMLCh *curDir = tempDir ? XMLString::transcode(tempDir) : 0; - free(tempDir); - return curDir; + char dirBuf[PATH_MAX + 1]; + char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); + + if (!curDir) + { + ThrowXML(XMLPlatformUtilsException, + XMLExcepts::File_CouldNotGetBasePathName); + } + + return XMLString::transcode(curDir); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c)