[v0.20] Properly check GPU index range

This commit is contained in:
Dr-Noob
2021-12-21 17:09:32 +01:00
parent a20e93f4db
commit 4921660c24
2 changed files with 9 additions and 4 deletions

View File

@@ -82,15 +82,15 @@ int main(int argc, char* argv[]) {
set_log_level(true); set_log_level(true);
struct gpu_info* gpu = get_gpu_info(list, get_gpu_idx());
if(gpu == NULL)
return EXIT_FAILURE;
printf("[WARNING]: gpufetch is in beta. The provided information may be incomplete or wrong.\n\ printf("[WARNING]: gpufetch is in beta. The provided information may be incomplete or wrong.\n\
If you want to help to improve gpufetch, please compare the output of the program\n\ If you want to help to improve gpufetch, please compare the output of the program\n\
with a reliable source which you know is right (e.g, techpowerup.com) and report\n\ with a reliable source which you know is right (e.g, techpowerup.com) and report\n\
any inconsistencies to https://github.com/Dr-Noob/gpufetch/issues\n"); any inconsistencies to https://github.com/Dr-Noob/gpufetch/issues\n");
struct gpu_info* gpu = get_gpu_info(list, get_gpu_idx());
if(gpu == NULL)
return EXIT_FAILURE;
if(print_gpufetch(gpu, get_style(), get_colors())) if(print_gpufetch(gpu, get_style(), get_colors()))
return EXIT_SUCCESS; return EXIT_SUCCESS;
else else

View File

@@ -1,6 +1,7 @@
#include <cstdlib> #include <cstdlib>
#include <cstdio> #include <cstdio>
#include "global.hpp"
#include "colors.hpp" #include "colors.hpp"
#include "master.hpp" #include "master.hpp"
#include "../cuda/cuda.hpp" #include "../cuda/cuda.hpp"
@@ -78,6 +79,10 @@ int get_num_gpus_available(struct gpu_list* list) {
} }
struct gpu_info* get_gpu_info(struct gpu_list* list, int idx) { struct gpu_info* get_gpu_info(struct gpu_list* list, int idx) {
if(idx >= list->num_gpus || idx < 0) {
printErr("Specified GPU index is out of range: %d", idx);
return NULL;
}
return list->gpus[idx]; return list->gpus[idx];
} }