summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Hacohen <tom@stosb.com>2013-09-30 14:10:21 +0100
committerTom Hacohen <tom@stosb.com>2013-09-30 14:10:21 +0100
commit42d29b55e596313562c31cfe7d15402b51aa0d0c (patch)
tree64d920d71f7c430fa100314b0192360511cad9cf /src
parent8ca320a1fc9448c051bdb3e42a972c1ad0da9161 (diff)
Eo: don't va_start without a matching va_end.
Fixes coverity CID1099707.
Diffstat (limited to 'src')
-rw-r--r--src/lib/eo/eo.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 2abff09f63..b838bb328b 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -427,22 +427,26 @@ eo_do_super_internal(const char *file, int line, const Eo *obj_id, const Eo_Clas
427 427
428 EO_CLASS_POINTER_RETURN_VAL(cur_klass_id, cur_klass, EINA_FALSE); 428 EO_CLASS_POINTER_RETURN_VAL(cur_klass_id, cur_klass, EINA_FALSE);
429 429
430 va_start(p_list, op);
431 if (_eo_is_a_class(obj_id)) 430 if (_eo_is_a_class(obj_id))
432 { 431 {
433 EO_CLASS_POINTER_RETURN_VAL(obj_id, klass, EINA_FALSE); 432 EO_CLASS_POINTER_RETURN_VAL(obj_id, klass, EINA_FALSE);
433
434 va_start(p_list, op);
434 nklass = _eo_kls_itr_next(klass, cur_klass, op); 435 nklass = _eo_kls_itr_next(klass, cur_klass, op);
435 op_ret = _eo_op_internal(file, line, (Eo_Base *) klass, nklass, EO_OP_TYPE_CLASS, op, &p_list); 436 op_ret = _eo_op_internal(file, line, (Eo_Base *) klass, nklass, EO_OP_TYPE_CLASS, op, &p_list);
437 va_end(p_list);
436 } 438 }
437 else 439 else
438 { 440 {
439 EO_OBJ_POINTER_RETURN_VAL(obj_id, obj, EINA_FALSE); 441 EO_OBJ_POINTER_RETURN_VAL(obj_id, obj, EINA_FALSE);
442
443 va_start(p_list, op);
440 nklass = _eo_kls_itr_next(obj->klass, cur_klass, op); 444 nklass = _eo_kls_itr_next(obj->klass, cur_klass, op);
441 op_ret = _eo_op_internal(file, line, (Eo_Base *) obj, nklass, EO_OP_TYPE_REGULAR, op, &p_list); 445 op_ret = _eo_op_internal(file, line, (Eo_Base *) obj, nklass, EO_OP_TYPE_REGULAR, op, &p_list);
442 if (obj->do_error) 446 if (obj->do_error)
443 ret = EINA_FALSE; 447 ret = EINA_FALSE;
448 va_end(p_list);
444 } 449 }
445 va_end(p_list);
446 450
447 if (!op_ret) 451 if (!op_ret)
448 _EO_OP_ERR_NO_OP_PRINT(file, line, op, nklass); 452 _EO_OP_ERR_NO_OP_PRINT(file, line, op, nklass);