/* {{{ openssl safe_mode & open_basedir checks */ inline static int openssl_safe_mode_chk(char *filename) { if (PG(safe_mode) && (!checkuid(filename, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { return -1; } if (check_open_basedir(filename)) { return -1; } return 0; }
static void asdl_progend(void) { dopending(NULL); { int n = checkuid(pickle->interfaces) + Seq_length(pickle->items); if (n != pickle->nuids - 1) fprintf(stderr, "?bogus uid count: have %d should have %d\n", n, pickle->nuids-1); } pickle->nlabels = genlabel(0); write_int((int)(100*(assert(strstr(rcsid, ",v")), strtod(strstr(rcsid, ",v")+2, NULL)) ), stdout); rcc_write_program(pickle, stdout); }
static int checkuid(list_ty list) { int i, n = 0, count = Seq_length(list); for (i = 0; i < count; i++) { rcc_interface_ty in = Seq_get(list, i); if (in->kind == rcc_Local_enum || in->kind == rcc_Address_enum) n++; else if (in->kind == rcc_Function_enum) n += checkuid(in->v.rcc_Function.codelist); } return n; }