diff --git a/MasterPassword/C/build b/MasterPassword/C/build index 99d31e42..852028ee 100755 --- a/MasterPassword/C/build +++ b/MasterPassword/C/build @@ -46,7 +46,7 @@ fetchSource() ( printf '%s' "$(git describe --always)" > "${PWD##*/}-version" return - elif [[ $svn ]] && hash git 2>/dev/null && hash "$(git --exec-path)/git-svn" 2>/dev/null; then + elif [[ $svn ]] && hash git 2>/dev/null && [[ -x "$(git --exec-path)/git-svn" ]]; then echo echo "Fetching: ${PWD##*/}, using git-svn..." git svn clone --prefix=origin/ --stdlayout "$svn" . @@ -206,6 +206,8 @@ cc() { llvm-gcc "$@" elif hash gcc 2>/dev/null; then gcc -std=gnu99 "$@" + elif hash clang 2>/dev/null; then + clang "$@" else echo >&2 "Need a compiler. Please install GCC or LLVM." exit 1 diff --git a/MasterPassword/C/mpw.c b/MasterPassword/C/mpw.c index 389b4179..3e438c5f 100644 --- a/MasterPassword/C/mpw.c +++ b/MasterPassword/C/mpw.c @@ -198,7 +198,7 @@ int main(int argc, char *const argv[]) { trc("key scope: %s\n", mpKeyScope); const uint32_t n_userNameLength = htonl(strlen(userName)); const size_t masterKeySaltLength = strlen(mpKeyScope) + sizeof(n_userNameLength) + strlen(userName); - char *masterKeySalt = malloc( masterKeySaltLength ); + char *masterKeySalt = (char *)malloc( masterKeySaltLength ); if (!masterKeySalt) { fprintf(stderr, "Could not allocate master key salt: %d\n", errno); return 1; @@ -213,7 +213,7 @@ int main(int argc, char *const argv[]) { trc("masterKeySalt ID: %s\n", IDForBuf(masterKeySalt, masterKeySaltLength)); // Calculate the master key. - uint8_t *masterKey = malloc( MP_dkLen ); + uint8_t *masterKey = (uint8_t *)malloc( MP_dkLen ); if (!masterKey) { fprintf(stderr, "Could not allocate master key: %d\n", errno); return 1; @@ -234,7 +234,7 @@ int main(int argc, char *const argv[]) { const uint32_t n_siteNameLength = htonl(strlen(siteName)); const uint32_t n_siteCounter = htonl(siteCounter); const size_t sitePasswordInfoLength = strlen(mpSiteScope) + sizeof(n_siteNameLength) + strlen(siteName) + sizeof(n_siteCounter); - char *sitePasswordInfo = malloc( sitePasswordInfoLength ); + char *sitePasswordInfo = (char *)malloc( sitePasswordInfoLength ); if (!sitePasswordInfo) { fprintf(stderr, "Could not allocate site seed: %d\n", errno); return 1; @@ -265,7 +265,7 @@ int main(int argc, char *const argv[]) { abort(); // Encode the password from the seed using the cipher. - char *sitePassword = calloc(strlen(cipher) + 1, sizeof(char)); + char *sitePassword = (char *)calloc(strlen(cipher) + 1, sizeof(char)); for (int c = 0; c < strlen(cipher); ++c) { sitePassword[c] = CharacterFromClass(cipher[c], sitePasswordSeed[c + 1]); trc("class %c, character: %c\n", cipher[c], sitePassword[c]); diff --git a/MasterPassword/C/types.c b/MasterPassword/C/types.c index fc387441..742605e8 100644 --- a/MasterPassword/C/types.c +++ b/MasterPassword/C/types.c @@ -50,19 +50,19 @@ const char *CipherForType(MPElementType type, uint8_t seedByte) { switch (type) { case MPElementTypeGeneratedMaximum: { - char *ciphers[] = { "anoxxxxxxxxxxxxxxxxx", "axxxxxxxxxxxxxxxxxno" }; + const char *ciphers[] = { "anoxxxxxxxxxxxxxxxxx", "axxxxxxxxxxxxxxxxxno" }; return ciphers[seedByte % 2]; } case MPElementTypeGeneratedLong: { - char *ciphers[] = { "CvcvnoCvcvCvcv", "CvcvCvcvnoCvcv", "CvcvCvcvCvcvno", "CvccnoCvcvCvcv", "CvccCvcvnoCvcv", "CvccCvcvCvcvno", "CvcvnoCvccCvcv", "CvcvCvccnoCvcv", "CvcvCvccCvcvno", "CvcvnoCvcvCvcc", "CvcvCvcvnoCvcc", "CvcvCvcvCvccno", "CvccnoCvccCvcv", "CvccCvccnoCvcv", "CvccCvccCvcvno", "CvcvnoCvccCvcc", "CvcvCvccnoCvcc", "CvcvCvccCvccno", "CvccnoCvcvCvcc", "CvccCvcvnoCvcc", "CvccCvcvCvccno" }; + const char *ciphers[] = { "CvcvnoCvcvCvcv", "CvcvCvcvnoCvcv", "CvcvCvcvCvcvno", "CvccnoCvcvCvcv", "CvccCvcvnoCvcv", "CvccCvcvCvcvno", "CvcvnoCvccCvcv", "CvcvCvccnoCvcv", "CvcvCvccCvcvno", "CvcvnoCvcvCvcc", "CvcvCvcvnoCvcc", "CvcvCvcvCvccno", "CvccnoCvccCvcv", "CvccCvccnoCvcv", "CvccCvccCvcvno", "CvcvnoCvccCvcc", "CvcvCvccnoCvcc", "CvcvCvccCvccno", "CvccnoCvcvCvcc", "CvccCvcvnoCvcc", "CvccCvcvCvccno" }; return ciphers[seedByte % 21]; } case MPElementTypeGeneratedMedium: { - char *ciphers[] = { "CvcnoCvc", "CvcCvcno" }; + const char *ciphers[] = { "CvcnoCvc", "CvcCvcno" }; return ciphers[seedByte % 2]; } case MPElementTypeGeneratedBasic: { - char *ciphers[] = { "aaanaaan", "aannaaan", "aaannaaa" }; + const char *ciphers[] = { "aaanaaan", "aannaaan", "aaannaaa" }; return ciphers[seedByte % 3]; } case MPElementTypeGeneratedShort: { @@ -75,7 +75,7 @@ const char *CipherForType(MPElementType type, uint8_t seedByte) { return "cvccvcvcv"; } case MPElementTypeGeneratedPhrase: { - char *ciphers[] = { "cvcc cvc cvccvcv cvc", "cvc cvccvcvcv cvcv", "cv cvccv cvc cvcvccv" }; + const char *ciphers[] = { "cvcc cvc cvccvcv cvc", "cvc cvccvcvcv cvcv", "cv cvccv cvc cvcvccv" }; return ciphers[seedByte % 3]; } default: { @@ -170,7 +170,7 @@ const char *IDForBuf(const void *buf, size_t length) { uint8_t hash[32]; SHA256_Buf(buf, length, hash); - char *id = calloc(65, sizeof(char)); + char *id = (char *)calloc(65, sizeof(char)); for (int kH = 0; kH < 32; kH++) sprintf(&(id[kH * 2]), "%02X", hash[kH]); @@ -178,7 +178,7 @@ const char *IDForBuf(const void *buf, size_t length) { } const char *Hex(const void *buf, size_t length) { - char *id = calloc(length*2+1, sizeof(char)); + char *id = (char *)calloc(length*2+1, sizeof(char)); for (int kH = 0; kH < length; kH++) sprintf(&(id[kH * 2]), "%02X", ((const uint8_t*)buf)[kH]); return id;