Explorar o código

mpi/starpu_mpi_insert_task.c: check data is valid before accessing it

Nathalie Furmento %!s(int64=14) %!d(string=hai) anos
pai
achega
da3e54c5aa
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      mpi/starpu_mpi_insert_task.c

+ 1 - 1
mpi/starpu_mpi_insert_task.c

@@ -233,7 +233,7 @@ int starpu_mpi_insert_task(MPI_Comm comm, starpu_codelet *codelet, ...)
 	while ((arg_type = va_arg(varg_list, int)) != 0) {
 	while ((arg_type = va_arg(varg_list, int)) != 0) {
 		if (arg_type==STARPU_R || arg_type==STARPU_W || arg_type==STARPU_RW || arg_type == STARPU_SCRATCH) {
 		if (arg_type==STARPU_R || arg_type==STARPU_W || arg_type==STARPU_RW || arg_type == STARPU_SCRATCH) {
                         starpu_data_handle data = va_arg(varg_list, starpu_data_handle);
                         starpu_data_handle data = va_arg(varg_list, starpu_data_handle);
-                        if (arg_type & STARPU_R) {
+                        if (data && arg_type & STARPU_R) {
                                 int mpi_rank = starpu_data_get_rank(data);
                                 int mpi_rank = starpu_data_get_rank(data);
                                 /* The task needs to read this data */
                                 /* The task needs to read this data */
                                 if (do_execute && mpi_rank != me && mpi_rank != -1) {
                                 if (do_execute && mpi_rank != me && mpi_rank != -1) {