Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
belle-sip
Commits
a7529424
Commit
a7529424
authored
Sep 11, 2015
by
Simon Morlat
Browse files
fix regression in object reference counting
parent
7cedd5e5
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
8 additions
and
7 deletions
+8
-7
src/belle_sip_object.c
src/belle_sip_object.c
+7
-6
src/transports/tls_channel_polarssl.c
src/transports/tls_channel_polarssl.c
+1
-1
No files found.
src/belle_sip_object.c
View file @
a7529424
...
...
@@ -111,22 +111,23 @@ belle_sip_object_t * belle_sip_object_ref(void *obj){
void
belle_sip_object_unref
(
void
*
ptr
){
belle_sip_object_t
*
obj
=
BELLE_SIP_OBJECT
(
ptr
);
if
(
obj
->
ref
==
-
1
)
{
belle_sip_error
(
"Object [%p] freed twice !"
,
obj
);
if
(
obj
->
ref
<=
-
1
)
{
belle_sip_error
(
"Object [%p] freed twice
or corrupted
!"
,
obj
);
if
(
obj
->
vptr
&&
obj
->
vptr
->
type_name
)
belle_sip_error
(
"Object type might be [%s]"
,
obj
->
vptr
->
type_name
);
if
(
obj
->
name
)
belle_sip_error
(
"Object name might be [%s]"
,
obj
->
name
);
belle_sip_fatal
(
"Fatal object error encountered, aborting."
);
return
;
}
if
(
obj
->
ref
==
0
&&
obj
->
pool
){
belle_sip_object_pool_remove
(
obj
->
pool
,
obj
);
if
(
obj
->
vptr
->
initially_unowned
&&
obj
->
ref
==
0
){
if
(
obj
->
pool
)
belle_sip_object_pool_remove
(
obj
->
pool
,
obj
);
obj
->
ref
=-
1
;
belle_sip_object_delete
(
obj
);
return
;
}
obj
->
ref
--
;
if
(
obj
->
ref
<=
0
){
// Can be null OR negative when no pool is available and object is unowned
obj
->
ref
=
-
1
;
if
(
obj
->
ref
==
0
){
obj
->
ref
=
-
1
;
belle_sip_object_delete
(
obj
);
}
}
...
...
src/transports/tls_channel_polarssl.c
View file @
a7529424
...
...
@@ -417,7 +417,7 @@ int belle_sip_verify_cb_error_wrapper(x509_crt *cert, int depth, int *flags){
memcpy
(
der
,
cert
->
raw
.
p
,
cert
->
raw
.
len
);
der
[
cert
->
raw
.
len
]
=
'\0'
;
rc
=
tls_verify_cb_error_cb
(
der
,
cert
->
raw
.
len
,
depth
,
flags
);
rc
=
tls_verify_cb_error_cb
(
der
,
cert
->
raw
.
len
,
depth
,
flags
);
belle_sip_message
(
"belle_sip_verify_cb_error_wrapper: callback return rc: %d, flags: %d"
,
rc
,
*
flags
);
belle_sip_free
(
der
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment