Index: trunk/ppSub/src/ppSubSetMasks.c
===================================================================
--- trunk/ppSub/src/ppSubSetMasks.c	(revision 29551)
+++ trunk/ppSub/src/ppSubSetMasks.c	(revision 30619)
@@ -80,8 +80,10 @@
     if (!pmReadoutMaskInvalid(inRO, maskValue, satValue)) {
         psError(PPSUB_ERR_DATA, false, "Unable to mask non-finite pixels in input.");
+	psFree(view);
         return false;
     }
     if (!pmReadoutMaskInvalid(refRO, maskValue, satValue)) {
         psError(PPSUB_ERR_DATA, false, "Unable to mask non-finite pixels in reference.");
+	psFree(view);
         return false;
     }
@@ -94,4 +96,5 @@
     if (interpMode == PS_INTERPOLATE_NONE) {
         psError(PPSUB_ERR_CONFIG, false, "Unknown interpolation mode: %s", interpModeStr);
+	psFree(view);
         return false;
     }
@@ -104,8 +107,10 @@
     if (!pmReadoutInterpolateBadPixels(inRO, maskVal, interpMode, poorFrac, maskPoor, maskBad)) {
         psError(PPSUB_ERR_DATA, false, "Unable to interpolate bad pixels for input image.");
+	psFree(view);
         return false;
     }
     if (!pmReadoutInterpolateBadPixels(refRO, maskVal, interpMode, poorFrac, maskPoor, maskBad)) {
         psError(PPSUB_ERR_DATA, false, "Unable to interpolate bad pixels for reference image.");
+	psFree(view);
         return false;
     }
@@ -113,4 +118,5 @@
 #endif
 
+    psFree(view);
     return true;
 }
