memif: Fix a message initialization problem in VAT 48/10848/2
authorJon Loeliger <jdl@netgate.com>
Tue, 27 Feb 2018 19:58:47 +0000 (13:58 -0600)
committerDamjan Marion <dmarion.lists@gmail.com>
Tue, 27 Feb 2018 20:53:14 +0000 (20:53 +0000)
The VAT calls to MEMIF_SOCKET_FILENAME_ADD_DEL erroneously
cleared the message memory after the M() macro call and
thus lost their message id.  Don't do that.

While in the neighborhood, prevent a string copy from
referencing data that doesn't belong to the filename string.

Change-Id: Ib4309608ed617ef4f193880ecf4a0b35fda65e51
Signed-off-by: Jon Loeliger <jdl@netgate.com>
src/plugins/memif/memif_test.c

index b1d5632..510462e 100644 (file)
@@ -164,11 +164,10 @@ api_memif_socket_filename_add_del (vat_main_t * vam)
 
   M (MEMIF_SOCKET_FILENAME_ADD_DEL, mp);
 
-  memset (mp, 0, sizeof (*mp));
   mp->is_add = is_add;
   mp->socket_id = htonl (socket_id);
-  memcpy (mp->socket_filename,
-         socket_filename, sizeof (mp->socket_filename) - 1);
+  strncpy ((char *) mp->socket_filename,
+          (char *) socket_filename, sizeof (mp->socket_filename) - 1);
 
   vec_free (socket_filename);