Implement uc_reg_{read,write}{,_batch}2 APIs.
These APIs take size parameters, which can be used to properly bounds-check the inputs and outputs for various registers. Additionally, all backends now throw UC_ERR_ARG if the input register numbers are invalid. Completes #1831.
This commit is contained in:
@@ -128,4 +128,15 @@ static inline void uc_common_init(struct uc_struct* uc)
|
||||
if (!uc->release)
|
||||
uc->release = release_common;
|
||||
}
|
||||
|
||||
#define CHECK_REG_TYPE(type) do { \
|
||||
if (size) { \
|
||||
if (*size < sizeof(type)) { \
|
||||
return UC_ERR_NOMEM; \
|
||||
} \
|
||||
*size = sizeof(type); \
|
||||
} \
|
||||
ret = UC_ERR_OK; \
|
||||
} while(0)
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user