No need to copy buffer
diff --git a/lib/bcrypt/c_src/bcrypt_erlang.c b/lib/bcrypt/c_src/bcrypt_erlang.c
index 4b4d43e..a15bcba 100644
--- a/lib/bcrypt/c_src/bcrypt_erlang.c
+++ b/lib/bcrypt/c_src/bcrypt_erlang.c
@@ -148,7 +148,6 @@
   ETERM *pattern, *pwd, *slt;
   char *password, *salt;
   char *ret = NULL;
-  char hashed[200];
   pattern = erl_format("{Pass, Salt}");
   if (erl_match(pattern, data)) {
     pwd = erl_var_content(pattern, "Pass");
@@ -156,13 +155,10 @@
     slt = erl_var_content(pattern, "Salt");
     salt = erl_iolist_to_string(slt);
     if (NULL == (ret = bcrypt(password, salt)) ||
-        0 == strncmp(ret, ":", 1)) {
+        0 == strcmp(ret, ":")) {
       retval = process_reply(pid, CMD_HASHPW, "Invalid salt");
     } else {
-      int retlen = strlen(ret);
-      strncpy(hashed, ret, retlen);
-      hashed[retlen] = 0;
-      retval = process_reply(pid, CMD_HASHPW, hashed);
+      retval = process_reply(pid, CMD_HASHPW, ret);
     }
     erl_free_term(pwd);
     erl_free_term(slt);