Try free all resources.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18890 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -283,6 +283,16 @@ HandleOP(GetVersionInfo) | ||||
| static int | ||||
| HandleOP(GoodBye) | ||||
| { | ||||
|     struct handle *h = c->handles; | ||||
|     int i = 0; | ||||
|  | ||||
|     while (h) { | ||||
| 	h = h->next; | ||||
| 	i++; | ||||
|     } | ||||
|  | ||||
|     logmessage(c, __FILE__, __LINE__, 0, "did not toast all resources: %d", i); | ||||
|  | ||||
|     return 1; | ||||
| } | ||||
|  | ||||
| @@ -929,6 +939,19 @@ create_client(int fd, int port, const char *moniker) | ||||
|     return c; | ||||
| } | ||||
|  | ||||
| static void | ||||
| free_client(struct client *c) | ||||
| { | ||||
|     while(c->handles) | ||||
| 	del_handle(&c->handles, c->handles->idx); | ||||
|  | ||||
|     free(c->moniker); | ||||
|     krb5_storage_free(c->sock); | ||||
|     if (c->logging) | ||||
| 	krb5_storage_free(c->logging); | ||||
|     free(c); | ||||
| } | ||||
|  | ||||
|  | ||||
| static void * | ||||
| handleServer(void *ptr) | ||||
| @@ -957,9 +980,6 @@ handleServer(void *ptr) | ||||
| 	if ((handler->func)(handler->op, c)) | ||||
| 	    break; | ||||
|     } | ||||
|     krb5_storage_free(c->sock); | ||||
|     if (c->logging) | ||||
| 	krb5_storage_free(c->logging); | ||||
|  | ||||
|     return NULL; | ||||
| } | ||||
| @@ -1049,6 +1069,8 @@ main(int argc, char **argv) | ||||
| 	/* close(0); */ | ||||
|  | ||||
| 	handleServer(c); | ||||
|  | ||||
| 	free_client(c); | ||||
|     } | ||||
|  | ||||
|     krb5_free_context(context); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Love Hörnquist Åstrand
					Love Hörnquist Åstrand