Skip to content

Commit 71e31c5

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

File tree

1 file changed

+10
-47
lines changed

1 file changed

+10
-47
lines changed

src/modules/iotjs_module_blehcisocket.c

Lines changed: 10 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,15 @@
4545
#define THIS iotjs_blehcisocket_t* blehcisocket
4646

4747

48-
static void iotjs_blehcisocket_destroy(THIS);
49-
IOTJS_DEFINE_NATIVE_HANDLE_INFO(blehcisocket);
48+
IOTJS_DEFINE_NATIVE_HANDLE_INFO_THIS_MODULE(blehcisocket);
5049

5150

5251
iotjs_blehcisocket_t* iotjs_blehcisocket_create(const iotjs_jval_t* jble) {
5352
THIS = IOTJS_ALLOC(iotjs_blehcisocket_t);
5453
IOTJS_VALIDATED_STRUCT_CONSTRUCTOR(iotjs_blehcisocket_t, blehcisocket);
5554

5655
iotjs_jobjectwrap_initialize(&_this->jobjectwrap, jble,
57-
&blehcisocket_native_info);
56+
&this_module_native_info);
5857

5958
iotjs_blehcisocket_initialize(blehcisocket);
6059

@@ -79,29 +78,19 @@ static void iotjs_blehcisocket_destroy(THIS) {
7978

8079

8180
JHANDLER_FUNCTION(Start) {
82-
DJHANDLER_CHECK_THIS(object);
81+
JHANDLER_DECLARE_THIS_PTR(blehcisocket, blehcisocket);
8382
DJHANDLER_CHECK_ARGS(0);
8483

85-
const iotjs_jval_t* jblehcisocket = JHANDLER_GET_THIS(object);
86-
87-
iotjs_blehcisocket_t* blehcisocket =
88-
iotjs_blehcisocket_instance_from_jval(jblehcisocket);
89-
9084
iotjs_blehcisocket_start(blehcisocket);
9185

9286
iotjs_jhandler_return_undefined(jhandler);
9387
}
9488

9589

9690
JHANDLER_FUNCTION(BindRaw) {
97-
DJHANDLER_CHECK_THIS(object);
91+
JHANDLER_DECLARE_THIS_PTR(blehcisocket, blehcisocket);
9892
JHANDLER_CHECK(ge(iotjs_jhandler_get_arg_length(jhandler), 1));
9993

100-
const iotjs_jval_t* jblehcisocket = JHANDLER_GET_THIS(object);
101-
102-
iotjs_blehcisocket_t* blehcisocket =
103-
iotjs_blehcisocket_instance_from_jval(jblehcisocket);
104-
10594
int devId = 0;
10695
int* pDevId = NULL;
10796

@@ -118,14 +107,9 @@ JHANDLER_FUNCTION(BindRaw) {
118107

119108

120109
JHANDLER_FUNCTION(BindUser) {
121-
DJHANDLER_CHECK_THIS(object);
110+
JHANDLER_DECLARE_THIS_PTR(blehcisocket, blehcisocket);
122111
DJHANDLER_CHECK_ARGS(1, number);
123112

124-
const iotjs_jval_t* jblehcisocket = JHANDLER_GET_THIS(object);
125-
126-
iotjs_blehcisocket_t* blehcisocket =
127-
iotjs_blehcisocket_instance_from_jval(jblehcisocket);
128-
129113
int devId = JHANDLER_GET_ARG(0, number);
130114
int* pDevId = &devId;
131115

@@ -136,42 +120,29 @@ JHANDLER_FUNCTION(BindUser) {
136120

137121

138122
JHANDLER_FUNCTION(BindControl) {
139-
DJHANDLER_CHECK_THIS(object);
123+
JHANDLER_DECLARE_THIS_PTR(blehcisocket, blehcisocket);
140124
DJHANDLER_CHECK_ARGS(0);
141125

142-
const iotjs_jval_t* jblehcisocket = JHANDLER_GET_THIS(object);
143-
144-
iotjs_blehcisocket_t* blehcisocket =
145-
iotjs_blehcisocket_instance_from_jval(jblehcisocket);
146-
147126
iotjs_blehcisocket_bindControl(blehcisocket);
148127

149128
iotjs_jhandler_return_undefined(jhandler);
150129
}
151130

152131

153132
JHANDLER_FUNCTION(IsDevUp) {
154-
DJHANDLER_CHECK_THIS(object);
133+
JHANDLER_DECLARE_THIS_PTR(blehcisocket, blehcisocket);
155134
DJHANDLER_CHECK_ARGS(0);
156135

157-
const iotjs_jval_t* jblehcisocket = JHANDLER_GET_THIS(object);
158-
159-
iotjs_blehcisocket_t* blehcisocket =
160-
iotjs_blehcisocket_instance_from_jval(jblehcisocket);
161-
162136
bool ret = iotjs_blehcisocket_isDevUp(blehcisocket);
163137

164138
iotjs_jhandler_return_boolean(jhandler, ret);
165139
}
166140

167141

168142
JHANDLER_FUNCTION(SetFilter) {
169-
DJHANDLER_CHECK_THIS(object);
143+
JHANDLER_DECLARE_THIS_PTR(blehcisocket, blehcisocket);
170144
DJHANDLER_CHECK_ARGS(1, object);
171145

172-
const iotjs_jval_t* jblehcisocket = JHANDLER_GET_THIS(object);
173-
iotjs_blehcisocket_t* blehcisocket =
174-
iotjs_blehcisocket_instance_from_jval(jblehcisocket);
175146
iotjs_bufferwrap_t* buffer =
176147
iotjs_bufferwrap_from_jbuffer(JHANDLER_GET_ARG(0, object));
177148

@@ -183,27 +154,19 @@ JHANDLER_FUNCTION(SetFilter) {
183154

184155

185156
JHANDLER_FUNCTION(Stop) {
186-
DJHANDLER_CHECK_THIS(object);
157+
JHANDLER_DECLARE_THIS_PTR(blehcisocket, blehcisocket);
187158
DJHANDLER_CHECK_ARGS(0);
188159

189-
const iotjs_jval_t* jblehcisocket = JHANDLER_GET_THIS(object);
190-
191-
iotjs_blehcisocket_t* blehcisocket =
192-
iotjs_blehcisocket_instance_from_jval(jblehcisocket);
193-
194160
iotjs_blehcisocket_stop(blehcisocket);
195161

196162
iotjs_jhandler_return_undefined(jhandler);
197163
}
198164

199165

200166
JHANDLER_FUNCTION(Write) {
201-
DJHANDLER_CHECK_THIS(object);
167+
JHANDLER_DECLARE_THIS_PTR(blehcisocket, blehcisocket);
202168
DJHANDLER_CHECK_ARGS(1, object);
203169

204-
const iotjs_jval_t* jblehcisocket = JHANDLER_GET_THIS(object);
205-
iotjs_blehcisocket_t* blehcisocket =
206-
iotjs_blehcisocket_instance_from_jval(jblehcisocket);
207170
iotjs_bufferwrap_t* buffer =
208171
iotjs_bufferwrap_from_jbuffer(JHANDLER_GET_ARG(0, object));
209172

0 commit comments

Comments
 (0)