diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-03-23 01:26:59 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-03-23 01:26:59 +0400 |
commit | ee6fe984ffb0d700ac91ab58283467d6957d068a (patch) | |
tree | b20ba5172d5f132c71680e9de005e961b5dcad57 /intern/string | |
parent | dad877bc3b7badad5c6c554991101c6ae722aa96 (diff) |
fix for buffer out-of-bounds reading for STR_String comparisons with char arrays.
Diffstat (limited to 'intern/string')
-rw-r--r-- | intern/string/STR_String.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/intern/string/STR_String.h b/intern/string/STR_String.h index a3d367a6fef..4607db45c7c 100644 --- a/intern/string/STR_String.h +++ b/intern/string/STR_String.h @@ -187,11 +187,11 @@ public: inline friend bool operator>=(rcSTR_String lhs, const char *rhs) { return (strcmp(lhs, rhs)>=0); } inline friend bool operator>=(const char *lhs, rcSTR_String rhs) { return (strcmp(lhs, rhs)>=0); } inline friend bool operator==(rcSTR_String lhs, rcSTR_String rhs) { return ((lhs.Length() == rhs.Length()) && (memcmp(lhs, rhs, lhs.Length()) == 0)); } - inline friend bool operator==(rcSTR_String lhs, const char *rhs) { return (memcmp(lhs, rhs, lhs.Length() + 1) == 0); } - inline friend bool operator==(const char *lhs, rcSTR_String rhs) { return (memcmp(lhs, rhs, rhs.Length() + 1) == 0); } - inline friend bool operator!=(rcSTR_String lhs, rcSTR_String rhs) { return ((lhs.Length() != rhs.Length()) || (memcmp(lhs, rhs, lhs.Length())!=0)); } - inline friend bool operator!=(rcSTR_String lhs, const char *rhs) { return (memcmp(lhs, rhs, lhs.Length() + 1) != 0); } - inline friend bool operator!=(const char *lhs, rcSTR_String rhs) { return (memcmp(lhs, rhs, rhs.Length() + 1) != 0); } + inline friend bool operator==(rcSTR_String lhs, const char *rhs) { return (strncmp(lhs, rhs, lhs.Length() + 1) == 0); } + inline friend bool operator==(const char *lhs, rcSTR_String rhs) { return (strncmp(lhs, rhs, rhs.Length() + 1) == 0); } + inline friend bool operator!=(rcSTR_String lhs, rcSTR_String rhs) { return ((lhs.Length() != rhs.Length()) || (memcmp(lhs, rhs, lhs.Length()) != 0)); } + inline friend bool operator!=(rcSTR_String lhs, const char *rhs) { return (strncmp(lhs, rhs, lhs.Length() + 1) != 0); } + inline friend bool operator!=(const char *lhs, rcSTR_String rhs) { return (strncmp(lhs, rhs, rhs.Length() + 1) != 0); } // serializing //int Serialize(pCStream stream); |