diff --git a/sys/hashes/sha256.c b/sys/hashes/sha256.c
index 32b1845f1254371f0a42f7f073eeeee9dbc60a69..6b843e09ea3bb2ae76f5161ed53272be4db91fc1 100644
--- a/sys/hashes/sha256.c
+++ b/sys/hashes/sha256.c
@@ -223,7 +223,9 @@ void sha256_update(sha256_context_t *ctx, const void *data, size_t len)
 
     /* Handle the case where we don't need to perform any transforms */
     if (len < 64 - r) {
-        memcpy(&ctx->buf[r], data, len);
+        if (len > 0) {
+            memcpy(&ctx->buf[r], data, len);
+        }
         return;
     }