X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Frmr%2Fsi%2Fsrc%2Fsi95%2Fsigetname.c;h=fee7199fdd67444e8c2c51ba5144d9253f1b68f1;hb=fcea3951d44de0cc55d33c5e114487abe79d3406;hp=89cbdf793e93391fcc7803fb4d0d749a3d3ccfef;hpb=6af063ee12dc292b7d37459199e2a51285030217;p=ric-plt%2Flib%2Frmr.git diff --git a/src/rmr/si/src/si95/sigetname.c b/src/rmr/si/src/si95/sigetname.c index 89cbdf7..fee7199 100644 --- a/src/rmr/si/src/si95/sigetname.c +++ b/src/rmr/si/src/si95/sigetname.c @@ -21,21 +21,30 @@ /* ------------------------------------------------------------------------ Mnemonic: sigetname - Abstract: returns the name of the socket for a given sid - Parms: sid - the socket id as returned by open/listen/connect - Date: 21 July 2003 - Author: E. Scott Daniels + Abstract: returns the name of the socket for a given sid. On failure returns + a nil pointer. + Parms: sid - the socket ID; a fd as returned by open/listen/connect + Date: 21 July 2003 + Author: E. Scott Daniels + + Mods: 30 Oct 2020 - address issues raised by code scan 1654181 ------------------------------------------------------------------------ */ #include "sisetup.h" -extern char *SIgetname( int sid ) { - struct sockaddr oaddr; // pointer to address in TCP binary format - char *buf; +extern char* SIgetname( int sid ) { + struct sockaddr oaddr; // pointer to address in TCP binary format + char *buf = NULL; int len; len = sizeof( oaddr ); - getsockname( sid, &oaddr, &len ); - SIaddress( &oaddr, (void **) &buf, AC_TODOT ); + if( getsockname( sid, &oaddr, &len ) < 0 ) { + return NULL; + } + + if( SIaddress( &oaddr, (void **) &buf, AC_TODOT ) <= 0 ) { + return NULL; + } + return buf; }