Index: uspace/srv/net/tcp/sock.c
===================================================================
--- uspace/srv/net/tcp/sock.c	(revision 02a09ed9ab72cd7eb2ca3f11873db078ab906acc)
+++ uspace/srv/net/tcp/sock.c	(revision 17a0fb873315b20c3609cd6ea608820e982625ea)
@@ -613,7 +613,12 @@
 	ipc_callid_t wcallid;
 	size_t length;
-	uint8_t buffer[TCP_SOCK_FRAGMENT_SIZE];
 	tcp_error_t trc;
 	int rc;
+	
+	uint8_t *buffer = calloc(TCP_SOCK_FRAGMENT_SIZE, 1);
+	if (buffer == NULL) {
+		async_answer_0(callid, ENOMEM);
+		return;
+	}
 
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_sock_send()");
@@ -625,5 +630,5 @@
 	if (sock_core == NULL) {
 		async_answer_0(callid, ENOTSOCK);
-		return;
+		goto out;
 	}
 
@@ -641,5 +646,5 @@
 			fibril_mutex_unlock(&socket->lock);
 			async_answer_0(callid, EINVAL);
-			return;
+			goto out;
 		}
 
@@ -651,5 +656,5 @@
 			fibril_mutex_unlock(&socket->lock);
 			async_answer_0(callid, rc);
-			return;
+			goto out;
 		}
 
@@ -676,5 +681,5 @@
 			fibril_mutex_unlock(&socket->lock);
 			async_answer_0(callid, rc);
-			return;
+			goto out;
 		}
 	}
@@ -685,4 +690,7 @@
 	    IPC_GET_ARG2(answer));
 	fibril_mutex_unlock(&socket->lock);
+	
+out:
+	free(buffer);
 }
 
