Text  |   XML   |   Visible Warnings:

Pvm : Pvm analysis 1 : Ignored Return Value  at ddpro.c:1510

Categories: LANG.FUNCS.IRV CWE:252 CWE:253 POW10:7
Warning ID: 2974.3060
Similar Warnings: 2974.3059
Procedure: exectasks
Trace: View
Modified: Wed Sep 2 12:55:27 2009   show details
 
Priority: None
State: None
Finding: None
Owner: None
  edit properties

Legend [ X ]
Warning Location
Contributes
Parse Error
Other Warning
Two or More Loop Iterations
On Execution Path
Comment
Macro
Preprocessor
Include
Keyword
Preprocessed Away

Source  |  Language: C Hide Legend     
LineSource
  /u1/paul/SATE/2010/c/pvm/pvm3/src/ddpro.c
  Enter exectasks
1401 exectasks(mp, rmp, schtid) 
1402         struct pmsg *mp;                /* the request message */ 
1403         struct pmsg *rmp;               /* reply message blank */ 
1404         int schtid;                             /* scheduler for new tasks */ 
1405 {
1406         struct pmsg *mp2;                       /* reply message hdl */ 
1407         int i;
1408         struct timeval now;
1409         struct waitc_spawn *wxp;        /* new task parameters */ 
1410         int munge_tenv = 0;
1411         char tmp[255];
1412         char *wd = 0;
1413         char *savewd = 0;
1414  
1415         wxp = TALLOC(1, struct waitc_spawn, "waix");
1416         BZERO((char*)wxp, sizeof(struct waitc_spawn));   /* Null Pointer Dereference (ID: 2534.2565) */
1417  
1418         /* unpack message */ 
1419  
1420         if (upkuint(mp, &wxp->w_ptid) 
1421         || upkstralloc(mp, &wxp->w_file) 
1422         || upkint(mp, &wxp->w_flags) 
1423         || upkint(mp, &wxp->w_veclen) 
1424         || upkint(mp, &wxp->w_argc))
1425                 goto bad;
1426  
1427         if (wxp->w_veclen < 1)
1428                 goto bad;
1429         wxp->w_vec = TALLOC(wxp->w_veclen, int, "tids");
1430  
1431         wxp->w_argc += 2;
1432         wxp->w_argv = TALLOC(wxp->w_argc + 1, char*, "argv");
1433         BZERO((char*)wxp->w_argv, (wxp->w_argc + 1) * sizeof(char*));   /* Null Pointer Dereference (ID: 2533.2564) */
1434         wxp->w_argv++;
1435         wxp->w_argv[0] = wxp->w_file;   /* Null Pointer Dereference (ID: 2532.2563) */
1436         wxp->w_file = 0;
1437         wxp->w_argv[--wxp->w_argc] = 0;
1438         for (i = 1; i < wxp->w_argc; i++)
1439                 if (upkstralloc(mp, &wxp->w_argv[i]))
1440                         goto bad;
1441  
1442         if (upkuint(mp, &wxp->w_outtid) 
1443         || upkuint(mp, &wxp->w_outctx) 
1444         || upkuint(mp, &wxp->w_outtag) 
1445         || upkuint(mp, &wxp->w_trctid) 
1446         || upkuint(mp, &wxp->w_trcctx) 
1447         || upkuint(mp, &wxp->w_trctag) 
1448         || upkuint(mp, &wxp->w_nenv))
1449                 goto bad;
1450  
1451         wxp->w_hosttotal = wxp->w_veclen; /* this is the task count! */ 
1452  
1453         if (pvmtracer.trctid) {
1454                 if (!(wxp->w_trctid) && pvmtracer.trctag) {
1455                         wxp->w_trctid = pvmtracer.trctid;
1456                         wxp->w_trcctx = pvmtracer.trcctx;
1457                         wxp->w_trctag = pvmtracer.trctag;
1458                         munge_tenv++;
1459                 }
1460         }
1461  
1462         if (pvmtracer.outtid) {
1463                 if (!(wxp->w_outtid) && pvmtracer.outtag) {
1464                         wxp->w_outtid = pvmtracer.outtid;
1465                         wxp->w_outctx = pvmtracer.outctx;
1466                         wxp->w_outtag = pvmtracer.outtag;
1467                 }
1468         }
1469  
1470         wxp->w_env = TALLOC((wxp->w_nenv + 1), char*, "env");
1471         BZERO(wxp->w_env, (wxp->w_nenv + 1) * sizeof(char*));   /* Null Pointer Dereference (ID: 2531.2562) */
1472  
1473         for (i = 0; i < wxp->w_nenv; i++)
1474                 if (upkstralloc(mp, &wxp->w_env[i]))
1475                         goto bad;
1476  
1477         if ( upkuint(mp, &wxp->w_instance) || upkuint(mp, &wxp->w_outof))
1478                 goto bad;
1479  
1480         /* check for spawn working directory */ 
1481  
1482         for (i = 0; i < wxp->w_nenv; i++)
1483                 if ( !strncmp( "PVMSPAWNWD=", wxp->w_env[i],
1484                                 strlen("PVMSPAWNWD=") ) )
1485                         wd = STRALLOC( wxp->w_env[i] + strlen("PVMSPAWNWD=") );   /* Null Pointer Dereference (ID: 2530.2561) */
1486  
1487         /* munge env for tracing stuff */ 
1488  
1489         if ( munge_tenv ) {
1490                 sprintftmp, "PVMTMASK=%s", pvmtracer.tmask );
1491                 pvmenvinsert( &(wxp->w_env), tmp );
1492  
1493                 sprintftmp, "PVMTRCBUF=%d", pvmtracer.trcbuf );
1494                 pvmenvinsert( &(wxp->w_env), tmp );
1495  
1496                 sprintftmp, "PVMTRCOPT=%d", pvmtracer.trcopt );
1497                 pvmenvinsert( &(wxp->w_env), tmp );
1498  
1499                 for ( wxp->w_nenv = 0 ; wxp->w_env[ wxp->w_nenv ] ;
1500                         (wxp->w_nenv)++ );
1501         }
1502  
1503         /* call ppi_load to get tasks running */ 
1504  
1505         wxp->w_sched = schtid;
1506  
1507         /* change to desired working directory (if specified) */ 
1508         if (wd) {
1509                 savewd = (char *) getcwd( (char *) NULL, 255 );
1510                 chdir( wd );     /* Ignored Return Value */
1511         }
1512  
1513 #if defined(IMA_PGON) || defined(IMA_SP2MPI) || defined(IMA_AIX4SP2) \
1514                 || defined(IMA_AIX5SP2) || defined(IMA_BEOLIN) 
1515         if (!(wxp->w_flags & PvmMppFront))
1516         {
1517                 mpp_load(wxp);
1518         }
1519         else 
1520 #endif 
1521         {
1522                 ppi_load(wxp);
1523         }
1524  
1525         /* go back to original directory (if getcwd() was successful) */ 
1526         if (savewd)
1527                 chdirsavewd );   /* Ignored Return Value (ID: 2974.3059) */
1528  
1529 for (i = 0; i < wxp->w_veclen; i++) {
1530                 if (wxp->w_vec[i] > 0) {
1531                         if (wxp->w_trctid > 0) {
1532                                 tev_send_newtask( 
1533                                         wxp->w_trctid, wxp->w_trcctx, wxp->w_trctag,
1534                                         wxp->w_vec[i], wxp->w_ptid, wxp->w_flags,
1535                                         wxp->w_argv[0] );
1536                         }
1537                         if (wxp->w_outtid > 0) {
1538                                 mp2 = mesg_new(0);
1539                                 mp2->m_dst = wxp->w_outtid;   /* Null Pointer Dereference (ID: 2529.2560) */
1540                                 mp2->m_ctx = wxp->w_outctx;
1541                                 mp2->m_tag = wxp->w_outtag;
1542                                 pkint(mp2, wxp->w_vec[i]);
1543                                 pkint(mp2, TO_NEW);
1544                                 pkint(mp2, wxp->w_ptid);
1545                                 sendmessage(mp2);
1546                         }
1547                 }
1548         }
1549  
1550         pkint(rmp, wxp->w_veclen);
1551         for (i = 0; i < wxp->w_veclen; i++)
1552                 pkint(rmp, wxp->w_vec[i]);
1553         sendmessage(rmp);
1554         goto cleanup;
1555  
1556 bad
1557         pvmlogprintf("exectasks() from t%x bad msg format\n", mp->m_src);
1558  
1559 cleanup: 
1560         if (wxp->w_argv)
1561                 *--wxp->w_argv = 0;
1562         free_wait_spawn(wxp);
1563         if (wd)
1564                 PVM_FREE(wd);
1565         return 0;
1566 } 




Change Warning 2974.3060 : Ignored Return Value

Because they are very similar, this warning shares annotations with warning 2974.3059.
CodeSonar has selected warning 2974.3059 to represent this group of similar warnings. In order to edit this group, you must edit warning 2974.3059.