소스 검색

Fix undefined behavior (null pointers passed to memcpy)

Mark Giraud 5 년 전
부모
커밋
3f314fa917
2개의 변경된 파일5개의 추가작업 그리고 0개의 파일을 삭제
  1. 3 0
      plugins/securityPolicies/ua_securitypolicy_none.c
  2. 2 0
      src/ua_types.c

+ 3 - 0
plugins/securityPolicies/ua_securitypolicy_none.c

@@ -72,6 +72,9 @@ generateNonce_none(const UA_SecurityPolicy *securityPolicy, UA_ByteString *out)
     if(securityPolicy == NULL || out == NULL)
         return UA_STATUSCODE_BADINTERNALERROR;
 
+    if(out->length == 0)
+        return UA_STATUSCODE_GOOD;
+
     /* Fill blocks of four byte */
     size_t i = 0;
     while(i + 3 < out->length) {

+ 2 - 0
src/ua_types.c

@@ -110,6 +110,8 @@ UA_Boolean
 UA_String_equal(const UA_String *s1, const UA_String *s2) {
     if(s1->length != s2->length)
         return false;
+    if(s1->length == 0)
+        return true;
     i32 is = memcmp((char const*)s1->data,
                     (char const*)s2->data, s1->length);
     return (is == 0) ? true : false;