Looks like a bunch of new Coverity defects in the online Coverity. Primarily 
ntirpc related.

See the online report:

https://scan.coverity.com/projects/2187/view_defects

-----Original Message-----
From: scan-ad...@coverity.com [mailto:scan-ad...@coverity.com] 
Sent: Friday, July 10, 2015 12:56 AM
To: ffilz...@mindspring.com
Subject: New Defects reported by Coverity Scan for nfs-ganesha


Hi,

Please find the latest report on new defect(s) introduced to nfs-ganesha found 
with Coverity Scan.

10 new defect(s) introduced to nfs-ganesha found with Coverity Scan.
12 defect(s), reported by Coverity Scan earlier, were marked fixed in the 
recent build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan Showing 10 of 10 defect(s)


** CID 124499:  Resource leaks  (RESOURCE_LEAK)
/nfs-ganesha/src/libntirpc/src/xdr_ioq.c: 291 in xdr_ioq_create()


________________________________________________________________________________________________________
*** CID 124499:  Resource leaks  (RESOURCE_LEAK)
/nfs-ganesha/src/libntirpc/src/xdr_ioq.c: 291 in xdr_ioq_create()
285                     struct xdr_ioq_uv *uv = xdr_ioq_uv_create(min_bsize, 
uio_flags);
286                     xioq->ioq_uv.uvqh.qcount = 1;
287                     TAILQ_INSERT_HEAD(&xioq->ioq_uv.uvqh.qh, &uv->uvq, q);
288                     xdr_ioq_reset(xioq, 0);
289             }
290     
>>>     CID 124499:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "xioq" going out of scope leaks the storage it points to.
291             return (xioq->xdrs);
292     }
293     
294     /*
295      * Advance read/insert or fill position.
296      *

** CID 124498:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/svc_vc.c: 1210 in svc_vc_override_ops()


________________________________________________________________________________________________________
*** CID 124498:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/svc_vc.c: 1210 in svc_vc_override_ops()
1204     }
1205     
1206     static void
1207     svc_vc_override_ops(SVCXPRT *xprt, SVCXPRT *newxprt)
1208     {
1209            if (xprt->xp_ops->xp_getreq)
>>>     CID 124498:  Concurrent data access violations  (MISSING_LOCK)
>>>     Accessing "newxprt->xp_ops->xp_getreq" without holding lock "ops_lock". 
>>> Elsewhere, "xp_ops.xp_getreq" is accessed with "ops_lock" held 7 out of 8 
>>> times (3 of these accesses strongly imply that it is necessary).
1210                    newxprt->xp_ops->xp_getreq = xprt->xp_ops->xp_getreq;
1211            if (xprt->xp_ops->xp_dispatch)
1212                    newxprt->xp_ops->xp_dispatch = 
xprt->xp_ops->xp_dispatch;
1213            if (xprt->xp_ops->xp_recv_user_data)
1214                    newxprt->xp_ops->xp_recv_user_data = 
xprt->xp_ops->xp_recv_user_data;
1215            if (xprt->xp_ops->xp_free_user_data)

** CID 124497:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/svc_vc.c: 1214 in svc_vc_override_ops()


________________________________________________________________________________________________________
*** CID 124497:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/svc_vc.c: 1214 in svc_vc_override_ops()
1208     {
1209            if (xprt->xp_ops->xp_getreq)
1210                    newxprt->xp_ops->xp_getreq = xprt->xp_ops->xp_getreq;
1211            if (xprt->xp_ops->xp_dispatch)
1212                    newxprt->xp_ops->xp_dispatch = 
xprt->xp_ops->xp_dispatch;
1213            if (xprt->xp_ops->xp_recv_user_data)
>>>     CID 124497:  Concurrent data access violations  (MISSING_LOCK)
>>>     Accessing "newxprt->xp_ops->xp_recv_user_data" without holding lock 
>>> "ops_lock". Elsewhere, "xp_ops.xp_recv_user_data" is accessed with 
>>> "ops_lock" held 6 out of 7 times (2 of these accesses strongly imply that 
>>> it is necessary).
1214                    newxprt->xp_ops->xp_recv_user_data = 
xprt->xp_ops->xp_recv_user_data;
1215            if (xprt->xp_ops->xp_free_user_data)
1216                    newxprt->xp_ops->xp_free_user_data = 
xprt->xp_ops->xp_free_user_data;
1217     }
1218     
1219     static void

** CID 124496:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/work_pool.c: 83 in work_pool_init()


________________________________________________________________________________________________________
*** CID 124496:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/work_pool.c: 83 in work_pool_init()
77      pool->params = *params;
78     
79      if (pool->params.thrd_max < 1) {
80              __warnx(TIRPC_DEBUG_FLAG_ERROR,
81                      "%s() thrd_max (%d) < 1",
82                      __func__, pool->params.thrd_max);
>>>     CID 124496:  Concurrent data access violations  (MISSING_LOCK)
>>>     Accessing "pool->params.thrd_max" without holding lock 
>>> "poolq_head.qmutex". Elsewhere, "work_pool_params.thrd_max" is accessed 
>>> with "poolq_head.qmutex" held 1 out of 2 times (1 of these accesses 
>>> strongly imply that it is necessary).
83              pool->params.thrd_max = 1;
84      };
85     
86      if (pool->params.thrd_min < 1) {
87              __warnx(TIRPC_DEBUG_FLAG_ERROR,
88                      "%s() thrd_min (%d) < 1",

** CID 124495:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/svc_vc.c: 1216 in svc_vc_override_ops()


________________________________________________________________________________________________________
*** CID 124495:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/svc_vc.c: 1216 in svc_vc_override_ops()
1210                    newxprt->xp_ops->xp_getreq = xprt->xp_ops->xp_getreq;
1211            if (xprt->xp_ops->xp_dispatch)
1212                    newxprt->xp_ops->xp_dispatch = 
xprt->xp_ops->xp_dispatch;
1213            if (xprt->xp_ops->xp_recv_user_data)
1214                    newxprt->xp_ops->xp_recv_user_data = 
xprt->xp_ops->xp_recv_user_data;
1215            if (xprt->xp_ops->xp_free_user_data)
>>>     CID 124495:  Concurrent data access violations  (MISSING_LOCK)
>>>     Accessing "newxprt->xp_ops->xp_free_user_data" without holding lock 
>>> "ops_lock". Elsewhere, "xp_ops.xp_free_user_data" is accessed with 
>>> "ops_lock" held 7 out of 8 times (3 of these accesses strongly imply that 
>>> it is necessary).
1216                    newxprt->xp_ops->xp_free_user_data = 
xprt->xp_ops->xp_free_user_data;
1217     }
1218     
1219     static void
1220     svc_vc_rendezvous_ops(SVCXPRT *xprt)
1221     {

** CID 124494:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/work_pool.c: 90 in work_pool_init()


________________________________________________________________________________________________________
*** CID 124494:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/work_pool.c: 90 in work_pool_init()
84      };
85     
86      if (pool->params.thrd_min < 1) {
87              __warnx(TIRPC_DEBUG_FLAG_ERROR,
88                      "%s() thrd_min (%d) < 1",
89                      __func__, pool->params.thrd_max);
>>>     CID 124494:  Concurrent data access violations  (MISSING_LOCK)
>>>     Accessing "pool->params.thrd_min" without holding lock 
>>> "poolq_head.qmutex". Elsewhere, "work_pool_params.thrd_min" is accessed 
>>> with "poolq_head.qmutex" held 1 out of 2 times (1 of these accesses 
>>> strongly imply that it is necessary).
90              pool->params.thrd_min = 1;
91      };
92     
93      rc = pthread_attr_init(&pool->attr);
94      if (rc) {
95              __warnx(TIRPC_DEBUG_FLAG_ERROR,

** CID 124493:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/svc_vc.c: 1212 in svc_vc_override_ops()


________________________________________________________________________________________________________
*** CID 124493:  Concurrent data access violations  (MISSING_LOCK)
/nfs-ganesha/src/libntirpc/src/svc_vc.c: 1212 in svc_vc_override_ops()
1206     static void
1207     svc_vc_override_ops(SVCXPRT *xprt, SVCXPRT *newxprt)
1208     {
1209            if (xprt->xp_ops->xp_getreq)
1210                    newxprt->xp_ops->xp_getreq = xprt->xp_ops->xp_getreq;
1211            if (xprt->xp_ops->xp_dispatch)
>>>     CID 124493:  Concurrent data access violations  (MISSING_LOCK)
>>>     Accessing "newxprt->xp_ops->xp_dispatch" without holding lock 
>>> "ops_lock". Elsewhere, "xp_ops.xp_dispatch" is accessed with "ops_lock" 
>>> held 7 out of 8 times (3 of these accesses strongly imply that it is 
>>> necessary).
1212                    newxprt->xp_ops->xp_dispatch = 
xprt->xp_ops->xp_dispatch;
1213            if (xprt->xp_ops->xp_recv_user_data)
1214                    newxprt->xp_ops->xp_recv_user_data = 
xprt->xp_ops->xp_recv_user_data;
1215            if (xprt->xp_ops->xp_free_user_data)
1216                    newxprt->xp_ops->xp_free_user_data = 
xprt->xp_ops->xp_free_user_data;
1217     }

** CID 124492:  Program hangs  (LOCK)
/nfs-ganesha/src/libntirpc/src/svc_ioq.c: 206 in svc_ioq_callback()


________________________________________________________________________________________________________
*** CID 124492:  Program hangs  (LOCK)
/nfs-ganesha/src/libntirpc/src/svc_ioq.c: 206 in svc_ioq_callback()
200             for (;;) {
201                     mutex_lock(&xprt->xp_lock);
202                     have = TAILQ_FIRST(&xd->shared.ioq.qh);
203                     if (unlikely(!have || !svc_work_pool.params.thrd_max)) {
204                             xd->shared.active = false;
205                             SVC_RELEASE(xprt, SVC_RELEASE_FLAG_LOCKED);
>>>     CID 124492:  Program hangs  (LOCK)
>>>     Returning without unlocking "xprt->xp_lock".
206                             return;
207                     }
208     
209                     TAILQ_REMOVE(&xd->shared.ioq.qh, have, q);
210                     (xd->shared.ioq.qcount)--;
211                     /* do i/o unlocked */

** CID 124491:  Program hangs  (LOCK)
/nfs-ganesha/src/MainNFSD/nfs_rpc_dispatcher_thread.c: 999 in 
nfs_rpc_recv_user_data()


________________________________________________________________________________________________________
*** CID 124491:  Program hangs  (LOCK)
/nfs-ganesha/src/MainNFSD/nfs_rpc_dispatcher_thread.c: 999 in 
nfs_rpc_recv_user_data()
993     
994             PTHREAD_MUTEX_unlock(&mtx);
995     
996             (void)svc_rqst_evchan_reg(rpc_evchan[tchan].chan_id, newxprt,
997                                       SVC_RQST_FLAG_NONE);
998     
>>>     CID 124491:  Program hangs  (LOCK)
>>>     Returning without unlocking "newxprt->xp_lock".
999             return 0;
1000     }
1001     
1002     /**
1003      * @brief xprt destructor callout
1004      *

** CID 124490:    (FORWARD_NULL)
/nfs-ganesha/src/MainNFSD/nfs_rpc_dispatcher_thread.c: 1311 in 
nfs_rpc_consume_req()
/nfs-ganesha/src/MainNFSD/nfs_rpc_dispatcher_thread.c: 1311 in 
nfs_rpc_consume_req()


________________________________________________________________________________________________________
*** CID 124490:    (FORWARD_NULL)
/nfs-ganesha/src/MainNFSD/nfs_rpc_dispatcher_thread.c: 1311 in 
nfs_rpc_consume_req()
1305            return;
1306     }
1307     
1308     /* static inline */
1309     request_data_t *nfs_rpc_consume_req(struct req_q_pair *qpair)
1310     {
>>>     CID 124490:    (FORWARD_NULL)
>>>     Assigning: "reqdata" = "NULL".
1311            request_data_t *reqdata = NULL;
1312     
1313            pthread_spin_lock(&qpair->consumer.sp);
1314            if (qpair->consumer.size > 0) {
1315                    reqdata =
1316                        glist_first_entry(&qpair->consumer.q, 
request_data_t,
/nfs-ganesha/src/MainNFSD/nfs_rpc_dispatcher_thread.c: 1311 in 
nfs_rpc_consume_req()
1305            return;
1306     }
1307     
1308     /* static inline */
1309     request_data_t *nfs_rpc_consume_req(struct req_q_pair *qpair)
1310     {
>>>     CID 124490:    (FORWARD_NULL)
>>>     Assigning: "reqdata" = "NULL".
1311            request_data_t *reqdata = NULL;
1312     
1313            pthread_spin_lock(&qpair->consumer.sp);
1314            if (qpair->consumer.size > 0) {
1315                    reqdata =
1316                        glist_first_entry(&qpair->consumer.q, 
request_data_t,


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, 
https://scan.coverity.com/projects/2187?tab=overview

To manage Coverity Scan email notifications for "ffilz...@mindspring.com", 
click 
https://scan.coverity.com/subscriptions/edit?email=ffilzlnx%40mindspring.com&token=021139a81167070ae7d9d7240926262c


------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

Reply via email to