diff --git a/demos/sslecho/main.c b/demos/sslecho/main.c
index c6f087c..588158e 100644
--- a/demos/sslecho/main.c
+++ b/demos/sslecho/main.c
@@ -137,8 +137,9 @@
     int server_skt = -1;
     int client_skt = -1;
 
-    char txbuf[128];
-    size_t txcap = sizeof(txbuf);
+    /* used by getline relying on realloc, can't be statically allocated */
+    char *txbuf = NULL;
+    size_t txcap = 0;
     int txlen;
 
     char rxbuf[128];
@@ -286,11 +287,14 @@
             while (true) {
                 /* Get a line of input */
                 txlen = getline(&txbuf, &txcap, stdin);
+                /* Exit loop on error */
+                if (txlen < 0 || txbuf == NULL) {
+                    break;
+                }
                 /* Exit loop if just a carriage return */
                 if (txbuf[0] == '\n') {
                     break;
                 }
-
                 /* Send it to the server */
                 if ((result = SSL_write(ssl, txbuf, txlen)) <= 0) {
                     printf("Server closed connection\n");
@@ -331,8 +335,8 @@
     if (server_skt != -1)
         close(server_skt);
 
-    OPENSSL_free(txbuf);
-    OPENSSL_free(rxbuf);
+    if (txbuf != NULL && txcap > 0)
+        free(txbuf);
 
     printf("sslecho exiting\n");
 
