Changeset: 0a46ef6c992a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0a46ef6c992a
Modified Files:
        monetdb5/modules/mal/clients.c
Branch: Jun2016
Log Message:

Avoid calling a function that might exit the program.


diffs (93 lines):

diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -391,41 +391,67 @@ CLTwakeup(void *ret, int *id)
 }
 
 str CLTmd5sum(str *ret, str *pw) {
+#ifdef HAVE_MD5_UPDATE
        char *mret = mcrypt_MD5Sum(*pw, strlen(*pw));
        *ret = GDKstrdup(mret);
        free(mret);
        return MAL_SUCCEED;
+#else
+       (void) ret;
+       (void) pw;
+       throw(MAL, "clients.md5sum", PROGRAM_NYI);
+#endif
 }
 
 str CLTsha1sum(str *ret, str *pw) {
+#ifdef HAVE_SHA1_UPDATE
        char *mret = mcrypt_SHA1Sum(*pw, strlen(*pw));
        *ret = GDKstrdup(mret);
        free(mret);
        return MAL_SUCCEED;
+#else
+       (void) ret;
+       (void) pw;
+       throw(MAL, "clients.sha1sum", PROGRAM_NYI);
+#endif
 }
 
 str CLTripemd160sum(str *ret, str *pw) {
+#ifdef HAVE_RIPEMD160_UPDATE
        char *mret = mcrypt_RIPEMD160Sum(*pw, strlen(*pw));
        *ret = GDKstrdup(mret);
        free(mret);
        return MAL_SUCCEED;
+#else
+       (void) ret;
+       (void) pw;
+       throw(MAL, "clients.ripemd160sum", PROGRAM_NYI);
+#endif
 }
 
 str CLTsha2sum(str *ret, str *pw, int *bits) {
        char *mret;
        switch (*bits) {
+#ifdef HAVE_SHA512_UPDATE
                case 512:
                        mret = mcrypt_SHA512Sum(*pw, strlen(*pw));
                        break;
+#endif
+#ifdef HAVE_SHA384_UPDATE
                case 384:
                        mret = mcrypt_SHA384Sum(*pw, strlen(*pw));
                        break;
+#endif
+#ifdef HAVE_SHA256_UPDATE
                case 256:
                        mret = mcrypt_SHA256Sum(*pw, strlen(*pw));
                        break;
+#endif
+#ifdef HAVE_SHA224_UPDATE
                case 224:
                        mret = mcrypt_SHA224Sum(*pw, strlen(*pw));
                        break;
+#endif
                default:
                        throw(ILLARG, "clients.sha2sum", "wrong number of bits "
                                        "for SHA2 sum: %d", *bits);
@@ -505,6 +531,7 @@ str CLTsetPassword(Client cntxt, MalBlkP
 }
 
 str CLTcheckPermission(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci) {
+#ifdef HAVE_SHA1_UPDATE
        str *usr = getArgReference_str(stk, pci, 1);
        str *pw = getArgReference_str(stk, pci, 2);
        str ch = "";
@@ -518,6 +545,13 @@ str CLTcheckPermission(Client cntxt, Mal
        msg = AUTHcheckCredentials(&id, cntxt, usr, &pwd, &ch, &algo);
        free(pwd);
        return msg;
+#else
+       (void) cntxt;
+       (void) mb;
+       (void) stk;
+       (void) pci;
+       throw(MAL, "mal.checkPermission", "Required digest algorithm SHA-1 
missing");
+#endif
 }
 
 str CLTgetUsers(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to