Leif Hedstrom created TS-4927:
---------------------------------

             Summary: Coverity issues in passthru example plugin
                 Key: TS-4927
                 URL: https://issues.apache.org/jira/browse/TS-4927
             Project: Traffic Server
          Issue Type: Bug
          Components: Plugins
            Reporter: Leif Hedstrom


{code}
*** CID 1363659:  Null pointer dereferences  (REVERSE_INULL)
/example/passthru/passthru.cc: 214 in PassthruSessionEvent(tsapi_cont *, 
TSEvent, void *)()
208     
209           // Start the server end of the IO before we write any data.
210           sp->server.readio.read(sp->server.vconn, sp->contp);
211           sp->server.writeio.write(sp->server.vconn, sp->contp);
212         }
213     
   CID 1363659:  Null pointer dereferences  (REVERSE_INULL)
   Null-checking "sp->server.vconn" suggests that it may be null, but it has 
already been dereferenced on all paths leading to the check.
214         if (sp->server.vconn != nullptr) {
215           int64_t nbytes;
216     
217           nbytes = sp->client.readio.transfer_to(sp->server.writeio);
218           PassthruSessionDebug(sp, "proxied %" PRId64 " bytes from client 
vconn=%p to server vconn=%p", nbytes, sp->client.vconn,
219                                sp->server.vconn);

** CID 1363658:  Incorrect expression  (ASSERT_SIDE_EFFECT)
/example/passthru/passthru.cc: 97 in PassthruIO::write(tsapi_cont *, tsapi_cont 
*)()


________________________________________________________________________________________________________
*** CID 1363658:  Incorrect expression  (ASSERT_SIDE_EFFECT)
/example/passthru/passthru.cc: 97 in PassthruIO::write(tsapi_cont *, tsapi_cont 
*)()
91       void
92       write(TSVConn vconn, TSCont contp)
93       {
94         TSReleaseAssert(this->vio == NULL);
95     
96         TSReleaseAssert((this->iobuf = TSIOBufferCreate()));
   CID 1363658:  Incorrect expression  (ASSERT_SIDE_EFFECT)
   Assignment "this->reader = TSIOBufferReaderAlloc(this->iobuf)" has a side 
effect.  This code will work differently in a non-debug build.
97         TSReleaseAssert((this->reader = TSIOBufferReaderAlloc(this->iobuf)));
98     
99         this->vio = TSVConnWrite(vconn, contp, this->reader, INT64_MAX);
100       }
101     
102       // Transfer data from this IO object to the target IO object.

** CID 1363657:  Incorrect expression  (ASSERT_SIDE_EFFECT)
/example/passthru/passthru.cc: 84 in PassthruIO::read(tsapi_cont *, tsapi_cont 
*)()


________________________________________________________________________________________________________
*** CID 1363657:  Incorrect expression  (ASSERT_SIDE_EFFECT)
/example/passthru/passthru.cc: 84 in PassthruIO::read(tsapi_cont *, tsapi_cont 
*)()
78       // Start a read operation.
79       void
80       read(TSVConn vconn, TSCont contp)
81       {
82         TSReleaseAssert(this->vio == NULL);
83     
   CID 1363657:  Incorrect expression  (ASSERT_SIDE_EFFECT)
   Assignment "this->iobuf = TSIOBufferCreate()" has a side effect.  This code 
will work differently in a non-debug build.
84         TSReleaseAssert((this->iobuf = TSIOBufferCreate()));
85         TSReleaseAssert((this->reader = TSIOBufferReaderAlloc(this->iobuf)));
86     
87         this->vio = TSVConnRead(vconn, contp, this->iobuf, INT64_MAX);
88       }
89     

** CID 1363656:  Incorrect expression  (ASSERT_SIDE_EFFECT)
/example/passthru/passthru.cc: 96 in PassthruIO::write(tsapi_cont *, tsapi_cont 
*)()


________________________________________________________________________________________________________
*** CID 1363656:  Incorrect expression  (ASSERT_SIDE_EFFECT)
/example/passthru/passthru.cc: 96 in PassthruIO::write(tsapi_cont *, tsapi_cont 
*)()
90       // Start a write operation.
91       void
92       write(TSVConn vconn, TSCont contp)
93       {
94         TSReleaseAssert(this->vio == NULL);
95     
   CID 1363656:  Incorrect expression  (ASSERT_SIDE_EFFECT)
   Assignment "this->iobuf = TSIOBufferCreate()" has a side effect.  This code 
will work differently in a non-debug build.
96         TSReleaseAssert((this->iobuf = TSIOBufferCreate()));
97         TSReleaseAssert((this->reader = TSIOBufferReaderAlloc(this->iobuf)));
98     
99         this->vio = TSVConnWrite(vconn, contp, this->reader, INT64_MAX);
100       }
101     

** CID 1363655:  Incorrect expression  (ASSERT_SIDE_EFFECT)
/example/passthru/passthru.cc: 85 in PassthruIO::read(tsapi_cont *, tsapi_cont 
*)()


________________________________________________________________________________________________________
*** CID 1363655:  Incorrect expression  (ASSERT_SIDE_EFFECT)
/example/passthru/passthru.cc: 85 in PassthruIO::read(tsapi_cont *, tsapi_cont 
*)()
79       void
80       read(TSVConn vconn, TSCont contp)
81       {
82         TSReleaseAssert(this->vio == NULL);
83     
84         TSReleaseAssert((this->iobuf = TSIOBufferCreate()));
   CID 1363655:  Incorrect expression  (ASSERT_SIDE_EFFECT)
   Assignment "this->reader = TSIOBufferReaderAlloc(this->iobuf)" has a side 
effect.  This code will work differently in a non-debug build.
85         TSReleaseAssert((this->reader = TSIOBufferReaderAlloc(this->iobuf)));
86     
87         this->vio = TSVConnRead(vconn, contp, this->iobuf, INT64_MAX);
88       }
89     
90       // Start a write operation.

** CID 1363654:  Incorrect expression  (ASSERT_SIDE_EFFECT)
/example/passthru/passthru.cc: 327 in PassthruListen()()


________________________________________________________________________________________________________
*** CID 1363654:  Incorrect expression  (ASSERT_SIDE_EFFECT)
/example/passthru/passthru.cc: 327 in PassthruListen()()
321         return TS_ERROR;
322       }
323     
324       TSDebug(PLUGIN_NAME, "listening on port '%s'", ports);
325       TSfree(ports);
326     
   CID 1363654:  Incorrect expression  (ASSERT_SIDE_EFFECT)
   Assignment "cont = TSContCreate(PassthruAccept, NULL)" has a side effect.  
This code will work differently in a non-debug build.
327       TSReleaseAssert(cont = TSContCreate(PassthruAccept, nullptr));
328       return TSPortDescriptorAccept(descriptor, cont);
329     }
330     
331     void
332     TSPluginInit(int /* argc */, const char * /* argv */ [])

{code}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to