]> git.donarmstrong.com Git - samtools.git/blobdiff - bam_import.c
* samtools-0.1.5-18 (r423)
[samtools.git] / bam_import.c
index 81d3720870d418f3b9bab901e2876506aa6d8828..d004de3d0cb2dafb0dcf5b4e8f45b8e23dcd2b59 100644 (file)
@@ -118,9 +118,10 @@ bam_header_t *sam_header_read2(const char *fn)
        kstring_t *str;
        kh_ref_t *hash;
        khiter_t k;
-       hash = kh_init(ref);
+       if (fn == 0) return 0;
        fp = (strcmp(fn, "-") == 0)? gzdopen(fileno(stdin), "r") : gzopen(fn, "r");
-       assert(fp);
+       if (fp == 0) return 0;
+       hash = kh_init(ref);
        ks = ks_init(fp);
        str = (kstring_t*)calloc(1, sizeof(kstring_t));
        while (ks_getuntil(ks, 0, str, &dret) > 0) {
@@ -487,9 +488,11 @@ int sam_read1(tamFile fp, bam_header_t *header, bam1_t *b)
 tamFile sam_open(const char *fn)
 {
        tamFile fp;
+       gzFile gzfp = (strcmp(fn, "-") == 0)? gzdopen(fileno(stdin), "r") : gzopen(fn, "r");
+       if (gzfp == 0) return 0;
        fp = (tamFile)calloc(1, sizeof(struct __tamFile_t));
        fp->str = (kstring_t*)calloc(1, sizeof(kstring_t));
-       fp->fp = (strcmp(fn, "-") == 0)? gzdopen(fileno(stdin), "r") : gzopen(fn, "r");
+       fp->fp = gzfp;
        fp->ks = ks_init(fp->fp);
        return fp;
 }