patch 7.4.1254
Problem:    Opening a second channel causes a crash. (Ken Takata)
Solution:   Don't re-allocate the array with channels.
diff --git a/src/channel.c b/src/channel.c
index 2e5965b..9e15fe4 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -133,22 +133,25 @@
 add_channel(void)
 {
     int		idx;
-    channel_T	*new_channels;
     channel_T	*ch;
 
     if (channels != NULL)
+    {
 	for (idx = 0; idx < channel_count; ++idx)
 	    if (channels[idx].ch_fd < 0)
 		/* re-use a closed channel slot */
 		return idx;
-    if (channel_count == MAX_OPEN_CHANNELS)
-	return -1;
-    new_channels = (channel_T *)alloc(sizeof(channel_T) * (channel_count + 1));
-    if (new_channels == NULL)
-	return -1;
-    if (channels != NULL)
-	mch_memmove(new_channels, channels, sizeof(channel_T) * channel_count);
-    channels = new_channels;
+	if (channel_count == MAX_OPEN_CHANNELS)
+	    return -1;
+    }
+    else
+    {
+	channels = (channel_T *)alloc((int)sizeof(channel_T)
+							 * MAX_OPEN_CHANNELS);
+	if (channels == NULL)
+	    return -1;
+    }
+
     ch = &channels[channel_count];
     (void)vim_memset(ch, 0, sizeof(channel_T));