static int file_pload_open(struct analyzer_pload_instance *pi, const char *filename) { // Create the private structure for the payload struct output_file_pload_priv *ppriv = malloc(sizeof(struct output_file_pload_priv)); if (!ppriv) { pom_oom(sizeof(struct output_file_pload_priv)); return POM_ERR; } memset(ppriv, 0, sizeof(struct output_file_pload_priv)); ppriv->filename = strdup(filename); if (!ppriv->filename) { free(ppriv); pom_oom(strlen(filename) + 1); return POM_ERR; } ppriv->fd = pom_open(filename, O_WRONLY | O_CREAT, 0666); if (ppriv->fd == -1) { free(ppriv); return POM_ERR; } analyzer_pload_instance_set_priv(pi, ppriv); pomlog(POMLOG_DEBUG "File %s open", ppriv->filename); return POM_OK; }
static int file_pload_open(struct output_file_priv *output_priv, const char *filename, void **pload_priv) { // Create the private structure for the payload struct output_file_pload_priv *ppriv = malloc(sizeof(struct output_file_pload_priv)); if (!ppriv) { pom_oom(sizeof(struct output_file_pload_priv)); return POM_ERR; } memset(ppriv, 0, sizeof(struct output_file_pload_priv)); ppriv->filename = strdup(filename); if (!ppriv->filename) { free(ppriv); pom_oom(strlen(filename) + 1); return POM_ERR; } ppriv->fd = pom_open(filename, O_WRONLY | O_CREAT, 0666); if (ppriv->fd == -1) { free(ppriv); return POM_ERR; } if (output_priv && output_priv->perf_files_open) registry_perf_inc(output_priv->perf_files_open, 1); pomlog(POMLOG_DEBUG "File %s open", ppriv->filename); *pload_priv = ppriv; return POM_OK; }