Skip to content

Commit 8943ad0

Browse files
LaszloLangoyichoi
authored andcommitted
Add a more secure type validator to I2C module based on #911 (#983)
Related issue: #816 IoT.js-DCO-1.0-Signed-off-by: László Langó [email protected]
1 parent 71e31c5 commit 8943ad0

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

src/modules/iotjs_module_i2c.c

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
#define THIS iotjs_i2c_reqwrap_t* i2c_reqwrap
2323

2424

25-
static void iotjs_i2c_destroy(iotjs_i2c_t* i2c);
26-
IOTJS_DEFINE_NATIVE_HANDLE_INFO(i2c);
25+
IOTJS_DEFINE_NATIVE_HANDLE_INFO_THIS_MODULE(i2c);
2726

2827

2928
iotjs_i2c_reqwrap_t* iotjs_i2c_reqwrap_create(const iotjs_jval_t* jcallback,
@@ -100,7 +99,8 @@ iotjs_i2c_t* iotjs_i2c_create(const iotjs_jval_t* ji2c) {
10099
_this->i2c_master = NULL;
101100
#endif
102101

103-
iotjs_jobjectwrap_initialize(&_this->jobjectwrap, ji2c, &i2c_native_info);
102+
iotjs_jobjectwrap_initialize(&_this->jobjectwrap, ji2c,
103+
&this_module_native_info);
104104
return i2c;
105105
}
106106

@@ -255,9 +255,8 @@ JHANDLER_FUNCTION(I2cCons) {
255255

256256

257257
JHANDLER_FUNCTION(SetAddress) {
258-
DJHANDLER_CHECK_THIS(object);
258+
JHANDLER_DECLARE_THIS_PTR(i2c_reqwrap, i2c);
259259
DJHANDLER_CHECK_ARGS(1, number);
260-
iotjs_i2c_t* i2c = iotjs_i2c_instance_from_jval(JHANDLER_GET_THIS(object));
261260

262261
I2cSetAddress(i2c, JHANDLER_GET_ARG(0, number));
263262

@@ -266,22 +265,21 @@ JHANDLER_FUNCTION(SetAddress) {
266265

267266

268267
JHANDLER_FUNCTION(Close) {
269-
DJHANDLER_CHECK_THIS(object);
268+
JHANDLER_DECLARE_THIS_PTR(i2c_reqwrap, i2c);
270269
DJHANDLER_CHECK_ARGS(0);
271270

272-
iotjs_i2c_t* i2c = iotjs_i2c_instance_from_jval(JHANDLER_GET_THIS(object));
273271
I2cClose(i2c);
274272

275273
iotjs_jhandler_return_null(jhandler);
276274
}
277275

278276

279277
JHANDLER_FUNCTION(Write) {
280-
DJHANDLER_CHECK_THIS(object);
278+
JHANDLER_DECLARE_THIS_PTR(i2c_reqwrap, i2c);
281279
DJHANDLER_CHECK_ARGS(2, array, function);
282280

283281
const iotjs_jval_t* jcallback = JHANDLER_GET_ARG(1, function);
284-
const iotjs_jval_t* ji2c = JHANDLER_GET_THIS(object);
282+
const iotjs_jval_t* ji2c = iotjs_jobjectwrap_jobject(i2c);
285283

286284
iotjs_i2c_reqwrap_t* req_wrap =
287285
iotjs_i2c_reqwrap_create(jcallback, ji2c, kI2cOpWrite);
@@ -296,11 +294,11 @@ JHANDLER_FUNCTION(Write) {
296294

297295

298296
JHANDLER_FUNCTION(Read) {
299-
DJHANDLER_CHECK_THIS(object);
297+
JHANDLER_DECLARE_THIS_PTR(i2c_reqwrap, i2c);
300298
DJHANDLER_CHECK_ARGS(2, number, function);
301299

302300
const iotjs_jval_t* jcallback = JHANDLER_GET_ARG(1, function);
303-
const iotjs_jval_t* ji2c = JHANDLER_GET_THIS(object);
301+
const iotjs_jval_t* ji2c = iotjs_jobjectwrap_jobject(i2c);
304302

305303
iotjs_i2c_reqwrap_t* req_wrap =
306304
iotjs_i2c_reqwrap_create(jcallback, ji2c, kI2cOpRead);

0 commit comments

Comments
 (0)