|
|
64ae36 |
From 5efe6f70f310858f554287bcf7883442380a0701 Mon Sep 17 00:00:00 2001
|
|
|
64ae36 |
From: Nathan Hjelm <hjelmn@lanl.gov>
|
|
|
64ae36 |
Date: Tue, 28 Jun 2016 10:26:16 -0600
|
|
|
64ae36 |
Subject: [PATCH] btl/openib: fix segmentation fault
|
|
|
64ae36 |
|
|
|
64ae36 |
This commit fixes a segmentation fault that occurs if a device can be
|
|
|
64ae36 |
initialized but not used. In this case the devices_count is not equal
|
|
|
64ae36 |
to the number of usable devices in the devices pointer array.
|
|
|
64ae36 |
|
|
|
64ae36 |
Thanks to @artpol84 for tracking this down.
|
|
|
64ae36 |
|
|
|
64ae36 |
Fixes open-mpi/ompi#1823
|
|
|
64ae36 |
|
|
|
64ae36 |
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
|
|
|
64ae36 |
(cherry picked from commit 8128c8eb29d6adde288fca5db3f71fb98e1727f6)
|
|
|
64ae36 |
---
|
|
|
64ae36 |
ompi/mca/btl/openib/btl_openib_component.c | 4 +++-
|
|
|
64ae36 |
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
64ae36 |
|
|
|
64ae36 |
diff --git a/ompi/mca/btl/openib/btl_openib_component.c b/ompi/mca/btl/openib/btl_openib_component.c
|
|
|
64ae36 |
index 40831f2373..d1376e0a58 100644
|
|
|
64ae36 |
--- a/ompi/mca/btl/openib/btl_openib_component.c
|
|
|
64ae36 |
+++ b/ompi/mca/btl/openib/btl_openib_component.c
|
|
|
64ae36 |
@@ -3630,7 +3630,9 @@ static int btl_openib_component_progress(void)
|
|
|
64ae36 |
for(i = 0; i < mca_btl_openib_component.devices_count; i++) {
|
|
|
64ae36 |
mca_btl_openib_device_t *device =
|
|
|
64ae36 |
(mca_btl_openib_device_t *) opal_pointer_array_get_item(&mca_btl_openib_component.devices, i);
|
|
|
64ae36 |
- count += progress_one_device(device);
|
|
|
64ae36 |
+ if (NULL != device) {
|
|
|
64ae36 |
+ count += progress_one_device(device);
|
|
|
64ae36 |
+ }
|
|
|
64ae36 |
}
|
|
|
64ae36 |
|
|
|
64ae36 |
#if OPAL_CUDA_SUPPORT /* CUDA_ASYNC_SEND */
|
|
|
64ae36 |
--
|
|
|
64ae36 |
2.13.5
|
|
|
64ae36 |
|