mirror of
				https://github.com/isar/libmdbx.git
				synced 2025-10-31 15:38:57 +08:00 
			
		
		
		
	mdbx: fix assertion to avoid false-positive UB detection by CLANG/LLVM.
Assume this resolve https://github.com/erthink/libmdbx/issues/153 Change-Id: I02ceba1063a338b6dedf17629b51b3466358b0b8
This commit is contained in:
		| @@ -4701,7 +4701,8 @@ static __inline void mdbx_meta_update_end(const MDBX_env *env, MDBX_meta *meta, | |||||||
|  |  | ||||||
| static __inline void mdbx_meta_set_txnid(const MDBX_env *env, MDBX_meta *meta, | static __inline void mdbx_meta_set_txnid(const MDBX_env *env, MDBX_meta *meta, | ||||||
|                                          txnid_t txnid) { |                                          txnid_t txnid) { | ||||||
|   mdbx_assert(env, meta < METAPAGE(env, 0) || meta > METAPAGE_END(env)); |   mdbx_assert(env, !env->me_map || meta < METAPAGE(env, 0) || | ||||||
|  |                        meta >= METAPAGE_END(env)); | ||||||
|   (void)env; |   (void)env; | ||||||
|   /* update inconsistent since this function used ONLY for filling meta-image |   /* update inconsistent since this function used ONLY for filling meta-image | ||||||
|    * for writing, but not the actual meta-page */ |    * for writing, but not the actual meta-page */ | ||||||
|   | |||||||
| @@ -410,8 +410,8 @@ void __hot maker::mk_continue(const serial_t serial, const essentials ¶ms, | |||||||
|   assert(out.value.iov_len <= params.maxlen); |   assert(out.value.iov_len <= params.maxlen); | ||||||
|   assert(out.value.iov_len >= length(serial)); |   assert(out.value.iov_len >= length(serial)); | ||||||
|   assert(out.value.iov_base >= out.bytes); |   assert(out.value.iov_base >= out.bytes); | ||||||
|   assert((uint8_t *)out.value.iov_base + out.value.iov_len <= |   assert((char *)out.value.iov_base + out.value.iov_len <= | ||||||
|          out.bytes + out.limit); |          (char *)&out.bytes + out.limit); | ||||||
| } | } | ||||||
|  |  | ||||||
| void log_pair(logging::loglevel level, const char *prefix, const buffer &key, | void log_pair(logging::loglevel level, const char *prefix, const buffer &key, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user