Index: src/topology-linux.c =================================================================== --- src/topology-linux.c (revision 1228) +++ src/topology-linux.c (working copy) @@ -155,6 +155,11 @@ static int hwloc_linux_set_thread_cpubind(hwloc_topology_t topology, pthread_t tid, hwloc_cpuset_t hwloc_set, int strict) { +#ifdef CPU_SET + cpu_set_t linux_set; + unsigned cpu; +#endif /* CPU_SET */ + if (!pthread_setaffinity_np) { /* ?! Application uses set_thread_cpubind, but doesn't link against libpthread ?! */ errno = ENOSYS; @@ -167,9 +172,6 @@ */ #ifdef CPU_SET - cpu_set_t linux_set; - unsigned cpu; - CPU_ZERO(&linux_set); hwloc_cpuset_foreach_begin(cpu, hwloc_set) CPU_SET(cpu, &linux_set); @@ -238,7 +240,8 @@ if (!fd) return -1; - fgets(string, 11, fd); + if (fgets(string, 11, fd) == NULL) + return -1; *value = strtoul(string, NULL, 10); fclose(fd); @@ -323,7 +326,8 @@ if (!fd) return 0; - fgets(cpuset_name, sizeof(cpuset_name), fd); + if (fgets(cpuset_name, sizeof(cpuset_name), fd) == NULL) + return 0; fclose(fd); tmp = strchr(cpuset_name, '\n'); @@ -343,7 +347,8 @@ if (!fd) return 0; - fgets(info, infomax, fd); + if (fgets(info, infomax, fd) == NULL) + return 0; fclose(fd); tmp = strchr(info, '\n'); @@ -860,7 +865,10 @@ getprocnb_end() if (str[strlen(str)-1]!='\n') { - fscanf(fd,"%*[^\n]"); + if (fscanf(fd,"%*[^\n]") == EOF) { + fclose(fd); + return -1; + } getc(fd); } } @@ -914,7 +922,8 @@ dmi_line[0] = '\0'; fd = hwloc_fopen("/sys/class/dmi/id/board_vendor", "r", topology->backend_params.sysfs.root_fd); if (fd) { - fgets(dmi_line, DMI_BOARD_STRINGS_LEN, fd); + if (fgets(dmi_line, DMI_BOARD_STRINGS_LEN, fd) == NULL) + return; fclose (fd); if (dmi_line[0] != '\0') { tmp = strchr(dmi_line, '\n'); @@ -928,7 +937,8 @@ dmi_line[0] = '\0'; fd = hwloc_fopen("/sys/class/dmi/id/board_name", "r", topology->backend_params.sysfs.root_fd); if (fd) { - fgets(dmi_line, DMI_BOARD_STRINGS_LEN, fd); + if (fgets(dmi_line, DMI_BOARD_STRINGS_LEN, fd) == NULL) + return; fclose (fd); if (dmi_line[0] != '\0') { tmp = strchr(dmi_line, '\n');