$OpenBSD: patch-gpsmap_cache_cc,v 1.1 2006/11/01 21:13:19 kili Exp $

# From upstream SVN.

--- gpsmap_cache.cc.orig	Thu Mar 10 17:49:34 2005
+++ gpsmap_cache.cc	Fri Oct 20 15:38:06 2006
@@ -174,6 +174,8 @@ int ReadGpsCacheFile(const char *in_gpsf
 
         strncpy(pt->bssid, cpt.bssid, MAC_STR_LEN);
         strncpy(pt->source, cpt.source, MAC_STR_LEN);
+	pt->bssid[MAC_STR_LEN-1]  = '\0';
+	pt->source[MAC_STR_LEN-1] = '\0';
         pt->tv_sec = cpt.tv_sec;
         pt->tv_usec = cpt.tv_usec;
         pt->lat = cpt.lat;
@@ -345,8 +347,9 @@ int WriteGpsCacheFile(const char *in_gps
         gpscache_point cpt;
         gps_point *pt = (*in_points)[nsam];
    
-        strncpy(cpt.bssid, pt->bssid, MAC_STR_LEN);
-        strncpy(cpt.source, pt->source, MAC_STR_LEN);
+	memset(&cpt, 0, sizeof cpt);
+        strncpy(cpt.bssid, pt->bssid, sizeof(cpt.bssid)-1);
+        strncpy(cpt.source, pt->source, sizeof(cpt.source)-1);
         cpt.tv_sec = pt->tv_sec;
         cpt.tv_usec = pt->tv_usec;
         cpt.lat = pt->lat;
