/* * Open a fname and check if there's a "PK" signature in header. */ int check_if_zip (const char *fname) { static const char header[4] = { 'P', 'K', 3, 4 }; const char *ext; char buf[4]; FILE *f; int rc = 0; /* Return 0 if extension is neither ".egg" nor ".zip" */ ext = get_file_ext (fname); if (stricmp(ext,"egg") && stricmp(ext,"zip")) return (0); f = fopen (fname, "rb"); if (f) { rc = (fread(&buf,1,sizeof(buf),f) == sizeof(buf) && !memcmp(&buf,&header,sizeof(buf))); fclose (f); } if (rc) DEBUGF (1, "\"%s\" is a ZIP-file.\n", fname); return (rc); }
file_source* graph::find_file_source(const char* file) const { auto it = source_map.find(get_file_ext(file)); if (it != source_map.end()) return it->second; //return source_map[f]; return NULL; }
/****************************************************************************** * public メソッド *****************************************************************************/ void PostDataChecker::validate_uitem(apr_pool_t *pool, apr_uint64_t file_size, apr_time_t mtime, const char **file_name, const char **file_mime, const char *file_digest, const char *remove_pass, const char *download_pass, const char **comment, const char *code_pat) { const char *file_ext; validate_file_name(pool, file_name, code_pat); validate_file_mime(pool, *file_mime); validate_comment(pool, comment, code_pat); file_ext = get_file_ext(*file_name); validate_file_ext(file_ext); if (strlen(*file_name) == 0) { THROW(MESSAGE_POST_FILE_NAME_EMPTY); } else if (strlen(*file_name) > (ITM_MAX_FILE_NAME_SIZE-1)) { THROW(MESSAGE_POST_FILE_NAME_TOO_LONG); } if (file_size == 0) { THROW(MESSAGE_POST_FILE_SIZE_ZERO); } if (strlen(*file_mime) == 0) { THROW(MESSAGE_POST_FILE_MIME_EMPTY); } else if (strlen(*file_mime) > (ITM_MAX_FILE_MIME_SIZE-1)) { THROW(MESSAGE_POST_FILE_MIME_TOO_LONG); } if (strlen(file_ext) == 0) { THROW(MESSAGE_POST_FILE_EXT_EMPTY); } else if (strlen(file_ext) > (ITM_MAX_FILE_EXT_SIZE-1)) { THROW(MESSAGE_POST_FILE_EXT_TOO_LONG); } if (strlen(file_digest) == 0) { THROW(MESSAGE_POST_FILE_DIGEST_EMPTY); } else if (strlen(file_digest) > (ITM_MAX_FILE_DIGEST_SIZE-1)) { THROW(MESSAGE_POST_FILE_DIGEST_TOO_LONG); } if (strlen(remove_pass) > (ITM_MAX_REMOVE_PASS_SIZE-1)) { THROW(MESSAGE_POST_REMOVE_PASS_TOO_LONG); } if (strlen(download_pass) > (ITM_MAX_DOWNLOAD_PASS_SIZE-1)) { THROW(MESSAGE_POST_DOWNLOAD_PASS_TOO_LONG); } if (strlen(*comment) == 0) { #ifndef EMPTY_COMMENT THROW(MESSAGE_POST_COMMENT_EMPTY); #endif } else if (strlen(*comment) > (ITM_MAX_COMMENT_SIZE-1)) { THROW(MESSAGE_POST_COMMENT_TOO_LONG); } }
int main(int argc, char** argv) { int opind; char *ext; init(); opind = process_command(argc, argv); if (opind == 0) { return 0; } for (int src_idx = 0; src_idx < static_cast<int>(src_files.size()); src_idx++) { filename = src_files[src_idx]; ext = get_file_ext(filename); if (!strcmp(ext, "c")) { compile(filename); } if (!strcmp(ext, "obj")) { linker.load_obj_file(filename); } } if (!outfile) { printf("usage: scc [-c infile] [-o outfile] [-lib] [infile] infile2...\n"); return -1; } if (output_type == OUTPUT_OBJ) { syntax.coff.write_obj(outfile); } else linker.pe_output_file(outfile); getchar(); return 0; }
List* read_dir(apr_pool_t* pool, List* file_list, const char* dir_path, int* count, error_messages_t* error_messages){ apr_status_t rv; char errorbuf [255]; apr_dir_t *dir; apr_finfo_t filef; char* file_path; rv = apr_dir_open(&dir, dir_path, pool); if (rv != 0){ apr_strerror(rv, (char *)&errorbuf, 255); error_messages_add(error_messages, ERROR,apr_psprintf(pool, "Error opening directory (%s) (%d)", dir_path, rv), errorbuf); return NULL; } //Read file is directory while (apr_dir_read(&filef, APR_FINFO_TYPE | APR_FINFO_NAME | APR_FINFO_MTIME, dir) == 0){ file_path = apr_pstrcat(pool, dir_path, "/", filef.name, NULL); if (file_path == NULL){ return NULL; ///BIG ERROR } //Is a Directory if (filef.filetype == APR_DIR){ if(filef.name[0] != '.'){ file_list = read_dir(pool, file_list, file_path, count, error_messages); } } //Is a File if (filef.filetype == APR_REG){ List* file_list_new; (*count)++; file_list_new = apr_pcalloc(pool, sizeof(List)); file_list->file.path = file_path; file_list->file.mtime = filef.mtime; file_list->file.type = get_file_ext(pool,file_path); file_list->next = file_list_new; file_list = file_list_new; } } rv = apr_dir_close(dir); return file_list; }
int main(int argc, char** argv) { int rc = 127; HINSTANCE hInstance = GetModuleHandle(NULL); const TCHAR* args = skip_program_name(GetCommandLine()); TCHAR* modulename = get_module_filename(hInstance); TCHAR* moduleext = (TCHAR*)get_file_ext(modulename); size_t maxlen = 0; const TCHAR** ext; TCHAR* name; TCHAR* nameext; int found = 0; for (ext = config.extensions; *ext; ++ext) { size_t len = _tcslen(*ext); if (maxlen < len) maxlen = len; } name = malloc(((moduleext - modulename) + maxlen + 1) * sizeof(TCHAR)); _tcsncpy(name, modulename, moduleext - modulename); nameext = name + (moduleext - modulename); SetConsoleCtrlHandler(&CtrlHandler, TRUE); /* let children handle Ctrl+C */ for (ext = config.extensions; *ext; ++ext) { _tcscpy(nameext, *ext); if (!try_script(name, args, &rc)) { found = 1; break; } } SetConsoleCtrlHandler(&CtrlHandler, FALSE); /* restore default behavior */ if (!found) _ftprintf(stderr, _T("Error: stub could not find or execute the script file\n")); free(name); free(modulename); return rc; }