Parcourir la source

totemiba: free send_buf on ibv_reg_mr failure

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
Jan Friesse il y a 14 ans
Parent
commit
57749ec02a
1 fichiers modifiés avec 2 ajouts et 0 suppressions
  1. 2 0
      exec/totemiba.c

+ 2 - 0
exec/totemiba.c

@@ -271,6 +271,7 @@ static inline struct send_buf *mcast_send_buf_get (
 		2048, IBV_ACCESS_LOCAL_WRITE);
 		2048, IBV_ACCESS_LOCAL_WRITE);
 	if (send_buf->mr == NULL) {
 	if (send_buf->mr == NULL) {
 		log_printf (LOGSYS_LEVEL_ERROR, "couldn't register memory range\n");
 		log_printf (LOGSYS_LEVEL_ERROR, "couldn't register memory range\n");
+		free (send_buf);
 		return (NULL);
 		return (NULL);
 	}
 	}
 	list_init (&send_buf->list_all);
 	list_init (&send_buf->list_all);
@@ -307,6 +308,7 @@ static inline struct send_buf *token_send_buf_get (
 		2048, IBV_ACCESS_LOCAL_WRITE);
 		2048, IBV_ACCESS_LOCAL_WRITE);
 	if (send_buf->mr == NULL) {
 	if (send_buf->mr == NULL) {
 		log_printf (LOGSYS_LEVEL_ERROR, "couldn't register memory range\n");
 		log_printf (LOGSYS_LEVEL_ERROR, "couldn't register memory range\n");
+		free (send_buf);
 		return (NULL);
 		return (NULL);
 	}
 	}
 	list_init (&send_buf->list_all);
 	list_init (&send_buf->list_all);