@@ -2120,8 +2120,7 @@ static int getBusFromSocketByNameDevid(const uint32_t socket, PciDevice* pcidev,
2120
2120
struct dirent * pDirent , * pDirentInner ;
2121
2121
DIR * pDir , * pDirInner ;
2122
2122
FILE * fp = NULL ;
2123
- int tmplen = 200 ;
2124
- char tmpPath [200 ], buff [200 ];
2123
+ char tmpPath [512 ], buff [512 ];
2125
2124
size_t ret = 0 ;
2126
2125
int bus_id = -1 ;
2127
2126
int numa_ctr = 0 ;
@@ -2137,12 +2136,10 @@ static int getBusFromSocketByNameDevid(const uint32_t socket, PciDevice* pcidev,
2137
2136
{
2138
2137
if (strncmp (pDirent -> d_name , "pci0" , 4 ) == 0 )
2139
2138
{
2140
- memset (tmpPath , '\0' , tmplen * sizeof (char ));
2141
- sprintf (tmpPath , "/sys/devices/%s" , pDirent -> d_name );
2139
+ snprintf (tmpPath , sizeof (tmpPath ), "/sys/devices/%s" , pDirent -> d_name );
2142
2140
2143
2141
char bus [4 ];
2144
- strncpy (bus , & (pDirent -> d_name [strlen (pDirent -> d_name )- 2 ]), 2 );
2145
- bus [2 ] = '\0' ;
2142
+ snprintf (bus , sizeof (bus ), "%s" , & pDirent -> d_name [strlen (pDirent -> d_name )- 2 ]);
2146
2143
2147
2144
pDirInner = opendir (tmpPath );
2148
2145
if (pDir == NULL )
@@ -2156,33 +2153,33 @@ static int getBusFromSocketByNameDevid(const uint32_t socket, PciDevice* pcidev,
2156
2153
{
2157
2154
uint32_t dev_id = 0x0 ;
2158
2155
int numa_node = 0 ;
2159
- memset (tmpPath , '\0' , tmplen * sizeof (char ));
2160
- sprintf (tmpPath , "/sys/devices/%s/%s/device" , pDirent -> d_name , pDirentInner -> d_name );
2156
+ snprintf (tmpPath , sizeof (tmpPath ), "/sys/devices/%s/%s/device" , pDirent -> d_name , pDirentInner -> d_name );
2161
2157
if (pcidev -> path && strcmp (& (pDirentInner -> d_name [strlen (pDirentInner -> d_name )- 4 ]), pcidev -> path ) != 0 )
2162
2158
{
2163
2159
continue ;
2164
2160
}
2165
2161
fp = fopen (tmpPath ,"r" );
2166
2162
if ( fp != NULL )
2167
2163
{
2168
- memset (buff , '\0' , tmplen * sizeof (char ));
2169
- ret = fread (buff , sizeof (char ), tmplen - 1 , fp );
2164
+ char * buffRead = fgets (buff , sizeof (buff ), fp );
2170
2165
fclose (fp );
2171
- if (ret > 0 )
2166
+ if (buffRead )
2172
2167
{
2173
2168
dev_id = strtoul (buff , NULL , 16 );
2174
2169
2175
2170
if (dev_id == pcidev -> devid )
2176
2171
{
2177
- memset (tmpPath , '\0' , tmplen * sizeof (char ));
2178
- sprintf (tmpPath , "/sys/devices/%s/%s/numa_node" , pDirent -> d_name , pDirentInner -> d_name );
2172
+ snprintf (tmpPath , sizeof (tmpPath ), "/sys/devices/%s/%s/numa_node" , pDirent -> d_name , pDirentInner -> d_name );
2179
2173
fp = fopen (tmpPath ,"r" );
2180
2174
if ( fp != NULL )
2181
2175
{
2182
- memset (buff , '\0' , tmplen * sizeof (char ));
2183
- ret = fread (buff , sizeof (char ), tmplen - 1 , fp );
2176
+ buffRead = fgets (buff , sizeof (buff ), fp );
2184
2177
fclose (fp );
2185
- numa_node = atoi (buff );
2178
+ if (buffRead )
2179
+ numa_node = atoi (buff );
2180
+ else
2181
+ numa_node = -1 ;
2182
+
2186
2183
if (numa_node < 0 )
2187
2184
{
2188
2185
numa_node = numa_ctr ;
0 commit comments