Index: /branches/eam_branches/ohana.20190329/src/opihi/lib.data/SplineOps.c
===================================================================
--- /branches/eam_branches/ohana.20190329/src/opihi/lib.data/SplineOps.c	(revision 40836)
+++ /branches/eam_branches/ohana.20190329/src/opihi/lib.data/SplineOps.c	(revision 40837)
@@ -41,7 +41,9 @@
     ALLOCATE (spline[0].y2, opihi_flt, spline[0].Nknots);
   }
-  memset (spline[0].xk, 0, spline[0].Nknots * sizeof(opihi_flt));
-  memset (spline[0].yk, 0, spline[0].Nknots * sizeof(opihi_flt));
-  memset (spline[0].y2, 0, spline[0].Nknots * sizeof(opihi_flt));
+  if (spline[0].Nknots) {
+    memset (spline[0].xk, 0, spline[0].Nknots * sizeof(opihi_flt));
+    memset (spline[0].yk, 0, spline[0].Nknots * sizeof(opihi_flt));
+    memset (spline[0].y2, 0, spline[0].Nknots * sizeof(opihi_flt));
+  }
 }
 
Index: /branches/eam_branches/ohana.20190329/src/opihi/lib.data/spline.c
===================================================================
--- /branches/eam_branches/ohana.20190329/src/opihi/lib.data/spline.c	(revision 40836)
+++ /branches/eam_branches/ohana.20190329/src/opihi/lib.data/spline.c	(revision 40837)
@@ -7,4 +7,7 @@
   float dy, dx, *tmp;
   
+  // spline is not valid with < 3 points
+  if (N < 3) return;
+
   ALLOCATE (tmp, float, N);
 
@@ -69,4 +72,7 @@
   opihi_flt dy, dx, *tmp;
   
+  // spline is not valid with < 3 points
+  if (N < 3) return;
+
   ALLOCATE (tmp, opihi_flt, N);
 
