Quellcode durchsuchen

totemudpu: Handle fd leak in totemudpu

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
Jan Friesse vor 12 Jahren
Ursprung
Commit
93286a344e
1 geänderte Dateien mit 8 neuen und 2 gelöschten Zeilen
  1. 8 2
      exec/totemudpu.c

+ 8 - 2
exec/totemudpu.c

@@ -1034,7 +1034,7 @@ static int totemudpu_create_sending_socket(
 	if (res == -1) {
 		LOGSYS_PERROR (errno, instance->totemudpu_log_level_warning,
 			"Could not set non-blocking operation on token socket");
-		return (-1);
+		goto error_close_fd;
 	}
 
 	/*
@@ -1047,6 +1047,9 @@ static int totemudpu_create_sending_socket(
 	if (res == -1) {
 		LOGSYS_PERROR (errno, instance->totemudpu_log_level_notice,
 			"Could not set sendbuf size");
+		/*
+		 * Fail in setting sendbuf size is not fatal -> don't exit
+		 */
 	}
 
 	/*
@@ -1057,11 +1060,14 @@ static int totemudpu_create_sending_socket(
 	if (res == -1) {
 		LOGSYS_PERROR (errno, instance->totemudpu_log_level_warning,
 			"bind token socket failed");
-		return (-1);
+		goto error_close_fd;
 	}
 
 	return (fd);
 
+error_close_fd:
+	close(fd);
+	return (-1);
 }
 
 int totemudpu_member_add (