This is an automated email from the ASF dual-hosted git repository.
gmurthy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git
The following commit(s) were added to refs/heads/master by this push:
new 1547a2f DISPATCH-1387 - Additional fix. Fix null pointer dereference
problems. This closes #563.
1547a2f is described below
commit 1547a2fe47a83f2e83d6ee9b8ec92ea2dec2c1c8
Author: Ganesh Murthy <[email protected]>
AuthorDate: Mon Sep 9 15:38:02 2019 -0400
DISPATCH-1387 - Additional fix. Fix null pointer dereference problems. This
closes #563.
---
src/router_core/agent_address.c | 24 +++++++++++++++---------
src/router_core/agent_config_address.c | 26 +++++++++++++++++---------
src/router_core/agent_config_link_route.c | 11 ++++++++---
3 files changed, 40 insertions(+), 21 deletions(-)
diff --git a/src/router_core/agent_address.c b/src/router_core/agent_address.c
index 1662f0b..22d5cc1 100644
--- a/src/router_core/agent_address.c
+++ b/src/router_core/agent_address.c
@@ -289,16 +289,22 @@ void qdra_address_get_first_CT(qdr_core_t *core,
qdr_query_t *query, int offset)
addr = DEQ_NEXT(addr);
assert(addr != 0);
- //
- // Write the columns of the address entity into the response body.
- //
- qdr_manage_write_address_list_CT(core, query, addr);
+ if (addr) {
+ //
+ // Write the columns of the address entity into the response body.
+ //
+ qdr_manage_write_address_list_CT(core, query, addr);
+
+ //
+ // Advance to the next address
+ //
+ query->next_offset = offset;
+ qdr_manage_advance_address_CT(query, addr);
+ }
+ else {
+ query->more = false;
+ }
- //
- // Advance to the next address
- //
- query->next_offset = offset;
- qdr_manage_advance_address_CT(query, addr);
//
// Enqueue the response.
diff --git a/src/router_core/agent_config_address.c
b/src/router_core/agent_config_address.c
index da96d1c..b25779a 100644
--- a/src/router_core/agent_config_address.c
+++ b/src/router_core/agent_config_address.c
@@ -186,16 +186,24 @@ void qdra_config_address_get_first_CT(qdr_core_t *core,
qdr_query_t *query, int
addr = DEQ_NEXT(addr);
assert(addr);
- //
- // Write the columns of the object into the response body.
- //
- qdr_agent_write_config_address_CT(query, addr);
+ if (addr) {
+ //
+ // Write the columns of the object into the response body.
+ //
+ qdr_agent_write_config_address_CT(query, addr);
+
+ //
+ // Advance to the next address
+ //
+ query->next_offset = offset;
+ qdr_manage_advance_config_address_CT(query, addr);
+
+ }
+ else {
+ query->more = false;
+ }
+
- //
- // Advance to the next address
- //
- query->next_offset = offset;
- qdr_manage_advance_config_address_CT(query, addr);
//
// Enqueue the response.
diff --git a/src/router_core/agent_config_link_route.c
b/src/router_core/agent_config_link_route.c
index be690e2..c04daa2 100644
--- a/src/router_core/agent_config_link_route.c
+++ b/src/router_core/agent_config_link_route.c
@@ -185,9 +185,14 @@ static void
qdr_agent_write_config_link_route_CT(qdr_query_t *query, qdr_link_r
static void qdr_manage_advance_config_link_route_CT(qdr_query_t *query,
qdr_link_route_t *lr)
{
- query->next_offset++;
- lr = DEQ_NEXT(lr);
- query->more = !!lr;
+ if (lr){
+ query->next_offset++;
+ lr = DEQ_NEXT(lr);
+ query->more = !!lr;
+ }
+ else {
+ query->more = false;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]