peiyongz    2002/09/23 15:14:37

  Modified:    c/src/xercesc/util/MsgLoaders/InMemory InMemMsgLoader.cpp
  Log:
  Code sharing and Array boundary checking added
  
  Revision  Changes    Path
  1.2       +32 -31    
xml-xerces/c/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp
  
  Index: InMemMsgLoader.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InMemMsgLoader.cpp        1 Feb 2002 22:22:21 -0000       1.1
  +++ InMemMsgLoader.cpp        23 Sep 2002 22:14:37 -0000      1.2
  @@ -56,8 +56,11 @@
   
   /*
    * $Log$
  - * Revision 1.1  2002/02/01 22:22:21  peiyongz
  - * Initial revision
  + * Revision 1.2  2002/09/23 22:14:37  peiyongz
  + * Code sharing and Array boundary checking added
  + *
  + * Revision 1.1.1.1  2002/02/01 22:22:21  peiyongz
  + * sane_include
    *
    * Revision 1.5  2000/03/28 19:43:21  roddey
    * Fixes for signed/unsigned warnings. New work for two way transcoding
  @@ -100,18 +103,17 @@
   // ---------------------------------------------------------------------------
   //  Public Constructors and Destructor
   // ---------------------------------------------------------------------------
  -InMemMsgLoader::InMemMsgLoader(const XMLCh* const msgDomain) :
  -
  -    fMsgDomain(0)
  +InMemMsgLoader::InMemMsgLoader(const XMLCh* const msgDomain)
  +:fMsgDomain(0)
   {
  -    fMsgDomain = XMLString::replicate(msgDomain);
  -
  -    if (XMLString::compareString(fMsgDomain, XMLUni::fgXMLErrDomain)
  -    &&  XMLString::compareString(fMsgDomain, XMLUni::fgExceptDomain)
  -    &&  XMLString::compareString(fMsgDomain, XMLUni::fgValidityDomain))
  +    if (XMLString::compareString(msgDomain, XMLUni::fgXMLErrDomain)
  +    &&  XMLString::compareString(msgDomain, XMLUni::fgExceptDomain)
  +    &&  XMLString::compareString(msgDomain, XMLUni::fgValidityDomain))
       {
           XMLPlatformUtils::panic(XMLPlatformUtils::Panic_UnknownMsgDomain);
       }
  +
  +    fMsgDomain = XMLString::replicate(msgDomain);
   }
   
   InMemMsgLoader::~InMemMsgLoader()
  @@ -136,38 +138,37 @@
       //
       XMLCh* endPtr = toFill + maxChars;
       XMLCh* outPtr = toFill;
  +    const XMLCh* srcPtr = 0;
  +
       if (!XMLString::compareString(fMsgDomain, XMLUni::fgXMLErrDomain))
       {
  -        const XMLCh* srcPtr = gXMLErrArray[msgToLoad - 1];
  -        while (*srcPtr && (outPtr < endPtr))
  -        {
  -            *outPtr++ = *srcPtr++;
  -        }
  -        *outPtr = 0;
  +        if ( msgToLoad > gXMLErrArraySize)
  +            return false;
  +        else
  +            srcPtr = gXMLErrArray[msgToLoad - 1];
       }
        else if (!XMLString::compareString(fMsgDomain, XMLUni::fgExceptDomain))
       {
  -        const XMLCh* srcPtr = gXMLExceptArray[msgToLoad - 1];
  -        while (*srcPtr && (outPtr < endPtr))
  -        {
  -            *outPtr++ = *srcPtr++;
  -        }
  -        *outPtr = 0;
  +         if ( msgToLoad > gXMLExceptArraySize)
  +            return false;
  +         else
  +             srcPtr = gXMLExceptArray[msgToLoad - 1];
       }
        else if (!XMLString::compareString(fMsgDomain, XMLUni::fgValidityDomain))
       {
  -        const XMLCh* srcPtr = gXMLValidityArray[msgToLoad - 1];
  -        while (*srcPtr && (outPtr < endPtr))
  -        {
  -            *outPtr++ = *srcPtr++;
  -        }
  -        *outPtr = 0;
  -    }
  -     else
  -    {
  -        return false;
  +         if ( msgToLoad > gXMLValidityArraySize)
  +            return false;
  +         else
  +             srcPtr = gXMLValidityArray[msgToLoad - 1];
       }
  -    return true;
  +
  +     while (*srcPtr && (outPtr < endPtr))
  +     {
  +         *outPtr++ = *srcPtr++;
  +     }
  +     *outPtr = 0;
  +
  +     return true;
   }
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to