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