X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Ffastcgi.c;h=352efe1bff288ad705e50691a4fdc7de7094d6ee;hb=6783694cfc5731afc561ea0e6737b6a982befa29;hp=e7133e8d23fffaa91a2e75d026b014eb099f4d5f;hpb=f677f4f422f9e4efd4cf83eea8ec271bb38f53d5;p=matches%2FMCTX3420.git diff --git a/server/fastcgi.c b/server/fastcgi.c index e7133e8..352efe1 100644 --- a/server/fastcgi.c +++ b/server/fastcgi.c @@ -228,7 +228,16 @@ bool FCGI_ParseRequest(FCGIContext *context, char *params, FCGIValue values[], s switch(FCGI_TYPE(val->flags)) { case FCGI_BOOL_T: - *((bool*) val->value) = true; + if (!*value) //No value: Default true + *((bool*) val->value) = true; + else { + *((bool*) val->value) = !!(strtol(value, &ptr, 10)); + if (*ptr) { + snprintf(buf, BUFSIZ, "Expected bool for '%s' but got '%s'", key, value); + FCGI_RejectJSON(context, buf); + return false; + } + } break; case FCGI_INT_T: case FCGI_LONG_T: { long parsed = strtol(value, &ptr, 10);