]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Comm job callbacks need job's cbdata pointer, not a job pointer.
authorAlex Rousskov <rousskov@measurement-factory.com>
Sun, 2 Feb 2014 02:47:05 +0000 (19:47 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Sun, 2 Feb 2014 02:47:05 +0000 (19:47 -0700)
Otherwise, in complex inheritance hierarchies, some [inner] classes will
hit cbdata cookie assertions when scheduling Comm calls with callbacks.

src/CommCalls.h

index 5003e78faa4e4b31cbb5b4097c62c5c7012c4667..2af0fbab1836152338c51c5f1ebd30ec98f8ec2a 100644 (file)
@@ -176,7 +176,7 @@ public:
     typedef void (C::*Method)(const Params &io);
 
     CommCbMemFunT(const CbcPointer<C> &aJob, Method aMeth): JobDialer<C>(aJob),
-            CommDialerParamsT<Params_>(aJob.get()),
+            CommDialerParamsT<Params_>(aJob->toCbdata()),
             method(aMeth) {}
 
     virtual bool canDial(AsyncCall &c) {