static rc_t CC _AuthMake ( const char * Name, bool NameDefaulted, bool CanRead, bool CanWrite, bool CanExecute, const struct XFSAuth ** Auth ) { struct XFSAuth * TheAuth; if ( Name == NULL || Auth == NULL ) { return XFS_RC ( rcNull ); } * Auth = NULL; TheAuth = calloc ( 1, sizeof ( struct XFSAuth ) ); if ( TheAuth == NULL ) { return XFS_RC ( rcExhausted ); } if ( ! NameDefaulted ) { TheAuth -> Name = string_dup_measure ( Name, NULL ); if ( TheAuth -> Name == NULL ) { _AuthDispose ( TheAuth ); return XFS_RC ( rcExhausted ); } } else { TheAuth -> Name = ( char * ) Name; } TheAuth -> NameDefaulted = NameDefaulted; TheAuth -> CanRead = CanRead; TheAuth -> CanWrite = CanWrite; TheAuth -> CanExecute = CanExecute; * Auth = TheAuth; return 0; } /* _AuthMake () */
static rc_t _KConfigGetAscpRate(const KConfig *self, const char **max_rate) { String *s = NULL; assert(self && max_rate); *max_rate = NULL; s = _KConfigAscpString(self, "tools/ascp/max_rate", "Aspera max rate"); if (s != NULL) { if (s->size == 0) { free(s); } else { *max_rate = string_dup_measure(s->addr, NULL); free(s); if (*max_rate == NULL) { free((void*)*max_rate); return RC(rcNS, rcStorage, rcAllocating, rcMemory, rcExhausted); } } return 0; } return 0; }
rc_t make_ref_exclude( ref_exclude *exclude, KDirectory *dir, const char * path, bool info ) { rc_t rc; BSTreeInit( &exclude->ref_nodes ); BSTreeInit( &exclude->translations ); exclude->last_used_ref_node = NULL; exclude->info = info; rc = VDBManagerMakeUpdate ( &exclude->mgr, dir ); if ( rc != 0 ) { LogErr( klogInt, rc, "VDBManagerMakeUpdate() in make_ref_exclude() failed\n" ); } else { insert_trans_nodes( &exclude->translations ); exclude->path = string_dup_measure ( path, NULL ); } return rc; }
rc_t vdf_main( const p_dump_context ctx, const VDBManager * mgr, const char * acc_or_path ) { rc_t rc = 0; fastq_ctx fctx; fctx.run_name = vdb_fastq_extract_run_name( acc_or_path ); ctx->path = string_dup_measure ( acc_or_path, NULL ); if ( USE_PATHTYPE_TO_DETECT_DB_OR_TAB ) /* in vdb-dump-context.h */ { rc = vdb_fastq_by_pathtype( ctx, mgr, &fctx ); } else { rc = vdb_fastq_by_probing( ctx, mgr, &fctx ); } free( (char*)ctx->path ); free( (void*)fctx.run_name ); ctx->path = NULL; return rc; }
static rc_t get_user_repo_name( const Args * args, const char ** name ) { uint32_t count; rc_t rc = ArgsOptionCount( args, OPTION_URNAME, &count ); if ( rc != 0 ) { PLOGERR( klogErr, ( klogErr, rc, "ArgsOptionCount( $(option) ) failed in $(func)", "option=%s,func=%s", OPTION_URNAME, __func__ ) ); } else if ( count > 0 ) { const char * s = NULL; rc = ArgsOptionValue( args, OPTION_URNAME, 0, &s ); if ( rc != 0 ) { PLOGERR( klogErr, ( klogErr, rc, "ArgsOptionValue( $(option), 0 ) failed in $(func)", "option=%s,func=%s", OPTION_URNAME, __func__ ) ); } else if ( s != NULL ) *name = string_dup_measure ( s, NULL ); } return rc; }
rc_t make_cgi_request( struct cgi_request ** request, const char * url ) { rc_t rc = 0; cgi_request * r = calloc( 1, sizeof * r ); if ( r == NULL ) { rc = RC( rcVDB, rcNoTarg, rcConstructing, rcMemory, rcExhausted ); ErrMsg( "calloc( %d ) -> %R", ( sizeof * r ), rc ); } else { r->url = string_dup_measure( url, NULL ); if ( r->url == NULL ) { rc = RC( rcVDB, rcNoTarg, rcConstructing, rcMemory, rcExhausted ); ErrMsg( "string_dup_measure( '%s' ) -> %R", url, rc ); } else { DBGMSG ( DBG_APP, DBG_FLAG ( DBG_APP_1 ), ( "%s\n", r -> url ) ); rc = VNamelistMake( &r->params, 10 ); if ( rc != 0 ) ErrMsg( "VNamelistMake() -> %R", rc ); else { rc = KNSManagerMake( &r->kns_mgr ); if ( rc != 0 ) ErrMsg( "KNSManagerMake() -> %R", rc ); else *request = r; } } if ( rc != 0 ) release_cgi_request( r ); } return rc; }
/* allocate a redact-value */ static p_redact_val redact_val_init( const char* name, const uint32_t len, const char* value ) { p_redact_val res = NULL; if ( name == NULL ) return res; if ( name[0] == 0 ) return res; res = calloc( 1, sizeof( redact_val ) ); if ( res == NULL ) return res; res->name = string_dup_measure ( name, NULL ); res->len = len; res->value = NULL; if ( value != NULL ) { if ( value[0] == '\'' && value[2] == '\'' ) { res->value = malloc( sizeof value[0] ); if ( res->value ) { res->len = 1; *( ( char * )res->value ) = value[1]; } } else { char *endptr; uint64_t x = strtou64( value, &endptr, 0 ); if ( res->len > sizeof x ) res->len = sizeof x; res->value = malloc( len ); if ( res->value ) memcpy( res->value, &x, res->len ); } } return res; }
rc_t nlt_make_namelist_from_string( const KNamelist **list, const char * src ) { VNamelist *v_names; rc_t rc = VNamelistMake ( &v_names, 5 ); if ( rc == 0 ) { char * s = string_dup_measure ( src, NULL ); if ( s ) { uint32_t str_begin = 0; uint32_t str_end = 0; char c; do { c = s[ str_end ]; if ( c == ',' || c == 0 ) { if ( str_begin < str_end ) { char c_temp = c; s[ str_end ] = 0; rc = VNamelistAppend ( v_names, &(s[str_begin]) ); s[ str_end ] = c_temp; } str_begin = str_end + 1; } str_end++; } while ( c != 0 && rc == 0 ); free( s ); } if ( rc == 0 ) rc = VNamelistToConstNamelist ( v_names, list ); VNamelistRelease( v_names ); } return rc; }
static rc_t CC _SFTestMake ( const struct _SFTest ** Test, const char * Path ) { rc_t RCt; struct _SFTest * Ret; struct KDirectory * Dir; uint32_t PathType; uint64_t Size; RCt = 0; Ret = NULL; Dir = NULL; PathType = kptNotFound; Size = 0; if ( Test != NULL ) { * Test = NULL; } if ( Test == NULL || Path == NULL ) { return RC ( rcExe, rcNoTarg, rcProcessing, rcParam, rcNull ); } /* First we shoud check that file exist */ RCt = KDirectoryNativeDir ( & Dir ); if ( RCt == 0 ) { PathType = KDirectoryPathType ( Dir, Path ); if ( PathType == kptFile ) { RCt = KDirectoryFileSize ( Dir, & Size, Path ); if ( Size == 0 ) { return RC ( rcExe, rcNoTarg, rcProcessing, rcParam, rcInvalid ); } } else { return RC ( rcExe, rcNoTarg, rcProcessing, rcParam, rcInvalid ); } KDirectoryRelease ( Dir ); } if ( RCt == 0 ) { Ret = calloc ( 1, sizeof ( struct _SFTest ) ); if ( Ret == NULL ) { RCt = RC ( rcExe, rcNoTarg, rcProcessing, rcParam, rcExhausted ); } else { Ret -> path = string_dup_measure ( Path, NULL ); if ( Ret -> path == NULL ) { RCt = RC ( rcExe, rcNoTarg, rcProcessing, rcParam, rcExhausted ); } else { Ret -> size = Size; * Test = Ret; } } } if ( RCt != 0 ) { * Test = NULL; _SFTestDispose ( Ret ); } return RCt; } /* _SFTestMake () */
static rc_t gather_string_options( Args * args, samdump_opts * opts ) { const char * s; uint32_t count; rc_t rc = get_str_option( args, OPT_PREFIX, &s ); if ( rc == 0 && s != NULL ) { opts->qname_prefix = string_dup_measure( s, NULL ); if ( opts->qname_prefix == NULL ) { rc = RC( rcExe, rcNoTarg, rcValidating, rcMemory, rcExhausted ); (void)LOGERR( klogErr, rc, "error storing QNAME-PREFIX" ); } } if ( rc == 0 ) { rc = get_str_option( args, OPT_Q_QUANT, &s ); if ( rc == 0 && s != NULL ) { opts->qual_quant = string_dup_measure( s, NULL ); if ( opts->qual_quant == NULL ) { rc = RC( rcExe, rcNoTarg, rcValidating, rcMemory, rcExhausted ); (void)LOGERR( klogErr, rc, "error storing QUAL-QUANT" ); } else { bool bres = QualityQuantizerInitMatrix( opts->qual_quant_matrix, opts->qual_quant ); if ( !bres ) { rc = RC( rcExe, rcNoTarg, rcValidating, rcParam, rcInvalid ); (void)LOGERR( klogErr, rc, "error initializing quality-quantizer-matrix" ); } } } } if ( rc == 0 ) { rc = get_str_option( args, OPT_OUTPUTFILE, &s ); if ( rc == 0 && s != NULL ) { opts->outputfile = string_dup_measure( s, NULL ); if ( opts->outputfile == NULL ) { rc = RC( rcExe, rcNoTarg, rcValidating, rcMemory, rcExhausted ); (void)LOGERR( klogErr, rc, "error storing OUTPUTFILE" ); } } } if ( rc == 0 ) { rc = ArgsOptionCount( args, OPT_HDR_COMMENT, &count ); if ( rc == 0 && count > 0 ) { uint32_t i; rc = VNamelistMake( &opts->hdr_comments, 10 ); for ( i = 0; i < count && rc == 0; ++i ) { const char * src; rc = ArgsOptionValue( args, OPT_HDR_COMMENT, i, &src ); if ( rc != 0 ) { (void)PLOGERR( klogErr, ( klogErr, rc, "error retrieving comandline option '$(t)' #$(n)", "t=%s,n=%u", OPT_HDR_COMMENT, i ) ); } else { rc = VNamelistAppend( opts->hdr_comments, src ); if ( rc != 0 ) { (void)PLOGERR( klogErr, ( klogErr, rc, "error appending hdr-comment '$(t)'", "t=%s", src ) ); } } } if ( rc != 0 ) { VNamelistRelease( opts->hdr_comments ); opts->hdr_comments = NULL; } } } if ( rc == 0 ) { rc = ArgsParamCount( args, &count ); if ( rc == 0 && count > 0 ) { uint32_t i; rc = VNamelistMake( &opts->input_files, 10 ); for ( i = 0; i < count && rc == 0; ++i ) { const char * src; rc = ArgsParamValue( args, i, &src ); if ( rc != 0 ) { (void)PLOGERR( klogErr, ( klogErr, rc, "error retrieving comandline param #$(n)", "n=%u", i ) ); } else { rc = VNamelistAppend( opts->input_files, src ); if ( rc != 0 ) { (void)PLOGERR( klogErr, ( klogErr, rc, "error appending input_file '$(t)'", "t=%s", src ) ); } } } if ( rc != 0 ) { VNamelistRelease( opts->input_files ); opts->input_files = NULL; } } opts->input_file_count = count; } rc = get_str_option( args, OPT_CIGAR_TEST, &s ); if ( rc == 0 && s != NULL ) { opts->cigar_test = string_dup_measure( s, NULL ); if ( opts->cigar_test == NULL ) { rc = RC( rcExe, rcNoTarg, rcValidating, rcMemory, rcExhausted ); (void)LOGERR( klogErr, rc, "error storing CIGAR-TEST" ); } } return rc; }