pw_transfer: Do not Finish() inactive transfer

Prevents calling Finish() on an inactive transfer as doing so will cause
a crash.

Change-Id: Idc97ba91603c22683e296d5da8ebd43c6cd31e81
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/75980
Reviewed-by: Alexei Frolov <frolv@google.com>
Commit-Queue: Armando Montanez <amontanez@google.com>
diff --git a/pw_transfer/transfer.cc b/pw_transfer/transfer.cc
index 5b56b35..152ddc7 100644
--- a/pw_transfer/transfer.cc
+++ b/pw_transfer/transfer.cc
@@ -76,7 +76,9 @@
                    static_cast<unsigned>(chunk.transfer_id),
                    static_cast<int>(status.code()));
     }
-    transfer.Finish(status).IgnoreError();
+    if (transfer.active()) {
+      transfer.Finish(status).IgnoreError();
+    }
     return;
   }