diff options
-rw-r--r-- | develdoc.txt | 6 | ||||
-rw-r--r-- | radsecproxy.c | 4 |
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; } |