Don't call free on MallocPtr not from Malloc

Change-Id: I9af8b3cd4cc98e4238c08bf5e20be615c9c72ff0
diff --git a/driver/rsdAllocation.cpp b/driver/rsdAllocation.cpp
index 2f9aa6d..f502f32 100644
--- a/driver/rsdAllocation.cpp
+++ b/driver/rsdAllocation.cpp
@@ -478,8 +478,9 @@
     if (alloc->mHal.drvState.lod[0].mallocPtr) {
         // don't free user-allocated ptrs or IO_OUTPUT buffers
         if (!(drv->useUserProvidedPtr) &&
+            !(alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_INPUT) &&
             !(alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_OUTPUT)) {
-            free(alloc->mHal.drvState.lod[0].mallocPtr);
+                free(alloc->mHal.drvState.lod[0].mallocPtr);
         }
         alloc->mHal.drvState.lod[0].mallocPtr = NULL;
     }