summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--develdoc.txt6
-rw-r--r--radsecproxy.c4
2 files changed, 6 insertions, 4 deletions
diff --git a/develdoc.txt b/develdoc.txt
index d3ee6f7..02190de 100644
--- a/develdoc.txt
+++ b/develdoc.txt
@@ -194,14 +194,12 @@ Finally, in sendreply() rq->replybuf is created from rq->msg, and
rq->msg is freed. rq->replybuf is kept so that if a duplicate request
is received later, we can just return rq->replybuf.
-It appears that rq->buf created by sendrq() is stored until the
-request is replaced, it should be freed when replyh replaces rq->msg
-or in freerqoutdata().
+rq->buf is removed by freerqoutdata(), because then we will not try
+to send the request in rq->buf any more.
Request structs should perhaps be freed when they "expire", rather
than wait until a new request with the same ID comes along.
-
x. Transports
struct protodefs protodefs[] contains definitions of the different
diff --git a/radsecproxy.c b/radsecproxy.c
index 6337e57..7edc949 100644
--- a/radsecproxy.c
+++ b/radsecproxy.c
@@ -942,6 +942,10 @@ void freerqoutdata(struct rqout *rqout) {
if (!rqout)
return;
if (rqout->rq) {
+ if (rqout->rq->buf) {
+ free(rqout->rq->buf);
+ rqout->rq->buf = NULL;
+ }
freerq(rqout->rq);
rqout->rq = NULL;
}