2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* if.h: (if_lookup_by_name_len, if_get_by_name_len) New functions.
	* if.c: (if_lookup_by_name_len, if_get_by_name_len) New functions.
	  (if_get_by_name) Tighten up code.
	  (interface) Use new function if_get_by_name_len.
	* zclient.c: (zebra_interface_add_read) Use new if_get_by_name_len
	  function.
	  (zebra_interface_state_read) Use new if_lookup_by_name_len function.
	* kernel_socket.c: (ifm_read) Use new if_lookup_by_name_len function
	  to save a memcpy.
	* if_ioctl_solaris.c: (interface_list_ioctl) Fix subtle bug with new
	  if_get_by_name_len function.
	* ospf_interface.c: (ospf_vl_new) Use strnlen to fix call to if_create.
diff --git a/lib/zclient.c b/lib/zclient.c
index 453e6cd..efcad57 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -534,12 +534,8 @@
   /* Read interface name. */
   stream_get (ifname_tmp, s, INTERFACE_NAMSIZ);
 
-  /* Lookup this by interface name. */
-  ifp = if_lookup_by_name (ifname_tmp);
-
-  /* If such interface does not exist, make new one. */
-  if (! ifp)
-    ifp = if_create (ifname_tmp, INTERFACE_NAMSIZ);
+  /* Lookup/create interface by name. */
+  ifp = if_get_by_name_len (ifname_tmp, strnlen(ifname_tmp, INTERFACE_NAMSIZ));
 
   /* Read interface's index. */
   ifp->ifindex = stream_getl (s);
@@ -579,7 +575,8 @@
   stream_get (ifname_tmp, s, INTERFACE_NAMSIZ);
 
   /* Lookup this by interface index. */
-  ifp = if_lookup_by_name (ifname_tmp);
+  ifp = if_lookup_by_name_len (ifname_tmp,
+			       strnlen(ifname_tmp, INTERFACE_NAMSIZ));
 
   /* If such interface does not exist, indicate an error */
   if (! ifp)