@@ -211,9 +211,12 @@ entry_reset(TfwCfgEntry *e)
211
211
static int
212
212
entry_set_name (TfwCfgEntry * e , const char * name_src , size_t name_len )
213
213
{
214
- BUG_ON (!e || ! name_src || ! name_len );
214
+ BUG_ON (!e );
215
215
BUG_ON (e -> name );
216
216
217
+ if (!name_src || !name_len )
218
+ return - EINVAL ;
219
+
217
220
if (!check_identifier (name_src , name_len ))
218
221
return - EINVAL ;
219
222
@@ -229,7 +232,11 @@ entry_add_val(TfwCfgEntry *e, const char *val_src, size_t val_len)
229
232
{
230
233
const char * val ;
231
234
232
- BUG_ON (!e || !val_src || e -> val_n > ARRAY_SIZE (e -> vals ));
235
+ BUG_ON (!e );
236
+ BUG_ON (e -> val_n > ARRAY_SIZE (e -> vals ));
237
+
238
+ if (!val_src || !val_len )
239
+ return - EINVAL ;
233
240
234
241
if (e -> val_n == ARRAY_SIZE (e -> vals )) {
235
242
TFW_ERR ("maximum number of values per entry reached\n" );
@@ -250,12 +257,14 @@ entry_add_attr(TfwCfgEntry *e, const char *key_src, size_t key_len,
250
257
{
251
258
const char * key , * val ;
252
259
253
- BUG_ON (!e || !key_src || !val_src );
254
- BUG_ON (!key_len ); /* Although empty values are allowed. */
260
+ BUG_ON (!e );
255
261
BUG_ON (e -> attr_n > ARRAY_SIZE (e -> attrs ));
256
262
263
+ if (!key_src || !key_len || !val_src || !val_len )
264
+ return - EINVAL ;
265
+
257
266
if (e -> attr_n == ARRAY_SIZE (e -> attrs )) {
258
- TFW_ERR ("maximum numer of attributes per entry reached\n" );
267
+ TFW_ERR ("maximum number of attributes per entry reached\n" );
259
268
return - ENOBUFS ;
260
269
}
261
270
@@ -623,6 +632,9 @@ parse_cfg_entry(TfwCfgParserState *ps)
623
632
PFSM_COND_MOVE (ps -> t == TOKEN_LITERAL , PS_MAYBE_EQSIGN );
624
633
FSM_COND_JMP (ps -> t == TOKEN_SEMICOLON , PS_SEMICOLON );
625
634
FSM_COND_JMP (ps -> t == TOKEN_LBRACE , PS_LBRACE );
635
+
636
+ ps -> err = - EINVAL ;
637
+ FSM_JMP (PS_EXIT );
626
638
}
627
639
628
640
FSM_STATE (PS_MAYBE_EQSIGN ) {
0 commit comments