lib/ipc: heim_sipc_stream_listener 'ct' lifecycle
return failure if calloc() fails do not leak 'ct' if called with invalid 'type' Change-Id: I384f80a51c6ec1d0980cce645c41ff3f6006fd3e
This commit is contained in:
		| @@ -1055,12 +1055,16 @@ heim_sipc_stream_listener(int fd, int type, | |||||||
| 			  heim_ipc_callback callback, | 			  heim_ipc_callback callback, | ||||||
| 			  void *user, heim_sipc *ctx) | 			  void *user, heim_sipc *ctx) | ||||||
| { | { | ||||||
|     heim_sipc ct = calloc(1, sizeof(*ct)); |     heim_sipc ct; | ||||||
|     struct client *c; |     struct client *c; | ||||||
|  |  | ||||||
|     if ((type & HEIM_SIPC_TYPE_IPC) && (type & (HEIM_SIPC_TYPE_UINT32|HEIM_SIPC_TYPE_HTTP))) |     if ((type & HEIM_SIPC_TYPE_IPC) && (type & (HEIM_SIPC_TYPE_UINT32|HEIM_SIPC_TYPE_HTTP))) | ||||||
| 	return EINVAL; | 	return EINVAL; | ||||||
|  |  | ||||||
|  |     ct = calloc(1, sizeof(*ct)); | ||||||
|  |     if (ct == NULL) | ||||||
|  | 	return ENOMEM; | ||||||
|  |  | ||||||
|     switch (type) { |     switch (type) { | ||||||
|     case HEIM_SIPC_TYPE_IPC: |     case HEIM_SIPC_TYPE_IPC: | ||||||
| 	c = add_new_socket(fd, LISTEN_SOCKET|WAITING_READ|INCLUDE_ERROR_CODE, callback, user); | 	c = add_new_socket(fd, LISTEN_SOCKET|WAITING_READ|INCLUDE_ERROR_CODE, callback, user); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jeffrey Altman
					Jeffrey Altman