diff --git a/boottime_tools/bootio/bootio_collector.cpp b/boottime_tools/bootio/bootio_collector.cpp
index dc13525..037a3e2 100644
--- a/boottime_tools/bootio/bootio_collector.cpp
+++ b/boottime_tools/bootio/bootio_collector.cpp
@@ -66,7 +66,12 @@
 int ReadIo(char *filename, AppSample *sample) {
     FILE *file;
     char line[MAX_LINE];
-    unsigned int rchar, wchar, syscr, syscw, readbytes, writebytes;
+    unsigned int rchar = 0;
+    unsigned int wchar = 0;
+    unsigned int syscr = 0;
+    unsigned int syscw = 0;
+    unsigned int readbytes = 0;
+    unsigned int writebytes = 0;
 
     file = fopen(filename, "r");
     if (!file) return 1;
@@ -289,17 +294,17 @@
                    cpuLoad);
             isFirstSample = false;
         }
-        printf("-----------------------------------------------------------------------------\n");
+        if (!newerSample) {
+            LOG(ERROR) << "newerSample is null";
+        } else {
+            printf("-----------------------------------------------------------------------------"
+                   "\n");
 #define NUMBER "%-13" PRId64
-        printf("%-15s" NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER "\n",
+            printf("%-15s" NUMBER NUMBER NUMBER NUMBER NUMBER NUMBER "\n",
 #undef NUMBER
-               "Total",
-               newerSample->rchar(),
-               newerSample->wchar(),
-               newerSample->syscr(),
-               newerSample->syscw(),
-               newerSample->readbytes(),
-               newerSample->writebytes());
+                   "Total", newerSample->rchar(), newerSample->wchar(), newerSample->syscr(),
+                   newerSample->syscw(), newerSample->readbytes(), newerSample->writebytes());
+        }
     }
     printf("\nAggregations\n%-10s%-13s%-13s%-13s\n",
            "Total",
diff --git a/profcollectd/libprofcollectd/service.rs b/profcollectd/libprofcollectd/service.rs
index 3f33802..8ae5152 100644
--- a/profcollectd/libprofcollectd/service.rs
+++ b/profcollectd/libprofcollectd/service.rs
@@ -131,7 +131,7 @@
             log::info!("Config change detected, resetting profcollect.");
             clear_data()?;
 
-            write(*CONFIG_FILE, &new_config.to_string())?;
+            write(*CONFIG_FILE, new_config.to_string())?;
         }
 
         // Clear profile reports out of rentention period.
diff --git a/simpleperf/ETMDecoder.cpp b/simpleperf/ETMDecoder.cpp
index 7c2928c..5e2f92e 100644
--- a/simpleperf/ETMDecoder.cpp
+++ b/simpleperf/ETMDecoder.cpp
@@ -289,9 +289,14 @@
       // addr.
       if (!map->in_kernel) {
         data.buffer_map = map;
-        data.buffer = memory == nullptr ? nullptr : (memory->getBufferStart() + map->pgoff);
         data.buffer_start = map->start_addr;
         data.buffer_end = map->get_end_addr();
+        if (memory != nullptr && memory->getBufferSize() > map->pgoff &&
+            (memory->getBufferSize() - map->pgoff >= map->len)) {
+          data.buffer = memory->getBufferStart() + map->pgoff;
+        } else {
+          data.buffer = nullptr;
+        }
       }
     }
     *num_bytes = copy_size;
