@@ -829,7 +829,7 @@ static int scan_devices(struct recover_control *rc)
struct btrfs_device *dev;
struct device_scan *dev_scans;
pthread_t *t_scans;
- int *t_rets;
+ long *t_rets;
int devnr = 0;
int devidx = 0;
int cancel_from = 0;
@@ -845,7 +845,7 @@ static int scan_devices(struct recover_control *rc)
t_scans = (pthread_t *)malloc(sizeof(pthread_t) * devnr);
if (!t_scans)
return -ENOMEM;
- t_rets = (int *)malloc(sizeof(int) * devnr);
+ t_rets = (long *)malloc(sizeof(long) * devnr);
if (!t_rets)
return -ENOMEM;
pthread use void * to save return status, we can use this pointer to save our return value, but we need keep the same length. This patch move to use long type variable to save return value of our thread, to avoid potentia invalid memory access. Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> --- chunk-recover.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)