fixed StringToLocalUTF8 evaluating invalid chars
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40189
This commit is contained in:
parent
bad69571b6
commit
2943111703
@ -542,7 +542,7 @@ inline int __CheckValidChar(char *c)
|
||||
int count;
|
||||
int bytecount = 0;
|
||||
|
||||
for(count=1; (*c & 0xC0) == 0x80; count++)
|
||||
for (count=1; (*c & 0xC0) == 0x80; count++)
|
||||
{
|
||||
c--;
|
||||
}
|
||||
@ -600,7 +600,7 @@ int BaseContext::StringToLocalUTF8(cell_t local_addr, size_t maxbytes, const cha
|
||||
}
|
||||
|
||||
memcpy(dest, source, len);
|
||||
if ((dest[len] & 1<<7) && needtocheck)
|
||||
if ((dest[len-1] & 1<<7) && needtocheck)
|
||||
{
|
||||
len -= __CheckValidChar(dest+len-1);
|
||||
}
|
||||
|
@ -229,7 +229,7 @@ namespace SourcePawn
|
||||
* @param local_addr Local address in plugin.
|
||||
* @param maxbytes Number of bytes to write, including NULL terminator.
|
||||
* @param source Source string to copy.
|
||||
* @param wrtnbytes Optionally set to the number of actual bytes written.
|
||||
* @param wrtnbytes Optionally set to the number of actual bytes written.
|
||||
*/
|
||||
virtual int StringToLocalUTF8(cell_t local_addr,
|
||||
size_t maxbytes,
|
||||
|
Loading…
Reference in New Issue
Block a user