Lines Matching refs:ms

67 file_clearbuf(struct magic_set *ms)  in file_clearbuf()  argument
69 free(ms->o.buf); in file_clearbuf()
70 ms->o.buf = NULL; in file_clearbuf()
71 ms->o.blen = 0; in file_clearbuf()
133 file_vprintf(struct magic_set *ms, const char *fmt, va_list ap) in file_vprintf() argument
139 if (ms->event_flags & EVENT_HAD_ERR) in file_vprintf()
143 file_clearbuf(ms); in file_vprintf()
144 file_error(ms, 0, "Bad magic format `%s' (%s)", fmt, tbuf); in file_vprintf()
149 if (len < 0 || (size_t)len > 1024 || len + ms->o.blen > 1024 * 1024) { in file_vprintf()
150 size_t blen = ms->o.blen; in file_vprintf()
152 file_clearbuf(ms); in file_vprintf()
153 file_error(ms, 0, "Output buffer space exceeded %d+%" in file_vprintf()
158 if (ms->o.buf != NULL) { in file_vprintf()
159 len = asprintf(&newstr, "%s%s", ms->o.buf, buf); in file_vprintf()
163 free(ms->o.buf); in file_vprintf()
166 ms->o.buf = buf; in file_vprintf()
167 ms->o.blen = len; in file_vprintf()
170 file_clearbuf(ms); in file_vprintf()
171 file_error(ms, errno, "vasprintf failed"); in file_vprintf()
176 file_printf(struct magic_set *ms, const char *fmt, ...) in file_printf() argument
182 rv = file_vprintf(ms, fmt, ap); in file_printf()
193 file_error_core(struct magic_set *ms, int error, const char *f, va_list va, in file_error_core() argument
197 if (ms->event_flags & EVENT_HAD_ERR) in file_error_core()
200 file_clearbuf(ms); in file_error_core()
201 (void)file_printf(ms, "line %" SIZE_T_FORMAT "u:", lineno); in file_error_core()
203 if (ms->o.buf && *ms->o.buf) in file_error_core()
204 (void)file_printf(ms, " "); in file_error_core()
205 (void)file_vprintf(ms, f, va); in file_error_core()
207 (void)file_printf(ms, " (%s)", strerror(error)); in file_error_core()
208 ms->event_flags |= EVENT_HAD_ERR; in file_error_core()
209 ms->error = error; in file_error_core()
214 file_error(struct magic_set *ms, int error, const char *f, ...) in file_error() argument
218 file_error_core(ms, error, f, va, 0); in file_error()
227 file_magerror(struct magic_set *ms, const char *f, ...) in file_magerror() argument
231 file_error_core(ms, 0, f, va, ms->line); in file_magerror()
236 file_oomem(struct magic_set *ms, size_t len) in file_oomem() argument
238 file_error(ms, errno, "cannot allocate %" SIZE_T_FORMAT "u bytes", in file_oomem()
243 file_badseek(struct magic_set *ms) in file_badseek() argument
245 file_error(ms, errno, "error seeking"); in file_badseek()
249 file_badread(struct magic_set *ms) in file_badread() argument
251 file_error(ms, errno, "error reading"); in file_badread()
258 file_separator(struct magic_set *ms) in file_separator() argument
260 return file_printf(ms, FILE_SEPARATOR); in file_separator()
264 trim_separator(struct magic_set *ms) in trim_separator() argument
268 if (ms->o.buf == NULL) in trim_separator()
271 l = strlen(ms->o.buf); in trim_separator()
276 if (strcmp(ms->o.buf + l, FILE_SEPARATOR) != 0) in trim_separator()
279 ms->o.buf[l] = '\0'; in trim_separator()
283 checkdone(struct magic_set *ms, int *rv) in checkdone() argument
285 if ((ms->flags & MAGIC_CONTINUE) == 0) in checkdone()
287 if (file_separator(ms) == -1) in checkdone()
293 file_default(struct magic_set *ms, size_t nb) in file_default() argument
295 if (ms->flags & MAGIC_MIME) { in file_default()
296 if ((ms->flags & MAGIC_MIME_TYPE) && in file_default()
297 file_printf(ms, "application/%s", in file_default()
302 if (ms->flags & MAGIC_APPLE) { in file_default()
303 if (file_printf(ms, "UNKNUNKN") == -1) in file_default()
307 if (ms->flags & MAGIC_EXTENSION) { in file_default()
308 if (file_printf(ms, "???") == -1) in file_default()
323 file_buffer(struct magic_set *ms, int fd, struct stat *st, in file_buffer() argument
336 ms->mode = b.st.st_mode; in file_buffer()
346 if ((ms->flags & MAGIC_NO_CHECK_ENCODING) == 0) { in file_buffer()
347 looks_text = file_encoding(ms, &b, NULL, 0, in file_buffer()
352 if ((ms->flags & MAGIC_NO_CHECK_APPTYPE) == 0 && inname) { in file_buffer()
353 m = file_os2_apptype(ms, inname, &b); in file_buffer()
354 if ((ms->flags & MAGIC_DEBUG) != 0) in file_buffer()
368 if ((ms->flags & MAGIC_NO_CHECK_COMPRESS) == 0) { in file_buffer()
369 m = file_zmagic(ms, &b, inname); in file_buffer()
370 if ((ms->flags & MAGIC_DEBUG) != 0) in file_buffer()
378 if ((ms->flags & MAGIC_NO_CHECK_TAR) == 0) { in file_buffer()
379 m = file_is_tar(ms, &b); in file_buffer()
380 if ((ms->flags & MAGIC_DEBUG) != 0) in file_buffer()
383 if (checkdone(ms, &rv)) in file_buffer()
389 if ((ms->flags & MAGIC_NO_CHECK_JSON) == 0) { in file_buffer()
390 m = file_is_json(ms, &b); in file_buffer()
391 if ((ms->flags & MAGIC_DEBUG) != 0) in file_buffer()
394 if (checkdone(ms, &rv)) in file_buffer()
400 if ((ms->flags & MAGIC_NO_CHECK_CSV) == 0) { in file_buffer()
401 m = file_is_csv(ms, &b, looks_text); in file_buffer()
402 if ((ms->flags & MAGIC_DEBUG) != 0) in file_buffer()
405 if (checkdone(ms, &rv)) in file_buffer()
411 if ((ms->flags & MAGIC_NO_CHECK_CDF) == 0) { in file_buffer()
412 m = file_trycdf(ms, &b); in file_buffer()
413 if ((ms->flags & MAGIC_DEBUG) != 0) in file_buffer()
416 if (checkdone(ms, &rv)) in file_buffer()
421 if ((ms->flags & MAGIC_NO_CHECK_ELF) == 0 && nb > 5 && fd != -1) { in file_buffer()
433 if ((pb = file_push_buffer(ms)) == NULL) in file_buffer()
436 rv = file_tryelf(ms, &b); in file_buffer()
437 rbuf = file_pop_buffer(ms, pb); in file_buffer()
442 if ((ms->flags & MAGIC_DEBUG) != 0) in file_buffer()
448 if ((ms->flags & MAGIC_NO_CHECK_SOFT) == 0) { in file_buffer()
449 m = file_softmagic(ms, &b, NULL, NULL, BINTEST, looks_text); in file_buffer()
450 if ((ms->flags & MAGIC_DEBUG) != 0) in file_buffer()
453 if (file_printf(ms, "%s", rbuf) == -1) in file_buffer()
457 if (checkdone(ms, &rv)) in file_buffer()
463 if ((ms->flags & MAGIC_NO_CHECK_TEXT) == 0) { in file_buffer()
465 m = file_ascmagic(ms, &b, looks_text); in file_buffer()
466 if ((ms->flags & MAGIC_DEBUG) != 0) in file_buffer()
477 rv = file_default(ms, nb); in file_buffer()
479 if (file_printf(ms, "%s", def) == -1) in file_buffer()
483 trim_separator(ms); in file_buffer()
484 if ((ms->flags & MAGIC_MIME_ENCODING) != 0) { in file_buffer()
485 if (ms->flags & MAGIC_MIME_TYPE) in file_buffer()
486 if (file_printf(ms, "; charset=") == -1) in file_buffer()
488 if (file_printf(ms, "%s", code_mime) == -1) in file_buffer()
504 file_reset(struct magic_set *ms, int checkloaded) in file_reset() argument
506 if (checkloaded && ms->mlist[0] == NULL) { in file_reset()
507 file_error(ms, 0, "no magic files loaded"); in file_reset()
510 file_clearbuf(ms); in file_reset()
511 if (ms->o.pbuf) { in file_reset()
512 free(ms->o.pbuf); in file_reset()
513 ms->o.pbuf = NULL; in file_reset()
515 ms->event_flags &= ~EVENT_HAD_ERR; in file_reset()
516 ms->error = -1; in file_reset()
529 file_getbuffer(struct magic_set *ms) in file_getbuffer() argument
534 if (ms->event_flags & EVENT_HAD_ERR) in file_getbuffer()
537 if (ms->flags & MAGIC_RAW) in file_getbuffer()
538 return ms->o.buf; in file_getbuffer()
540 if (ms->o.buf == NULL) in file_getbuffer()
544 len = strlen(ms->o.buf); in file_getbuffer()
546 file_oomem(ms, len); in file_getbuffer()
550 if ((pbuf = CAST(char *, realloc(ms->o.pbuf, psize))) == NULL) { in file_getbuffer()
551 file_oomem(ms, psize); in file_getbuffer()
554 ms->o.pbuf = pbuf; in file_getbuffer()
565 np = ms->o.pbuf; in file_getbuffer()
566 op = ms->o.buf; in file_getbuffer()
591 return ms->o.pbuf; in file_getbuffer()
595 for (np = ms->o.pbuf, op = ms->o.buf; *op;) { in file_getbuffer()
603 return ms->o.pbuf; in file_getbuffer()
607 file_check_mem(struct magic_set *ms, unsigned int level) in file_check_mem() argument
611 if (level >= ms->c.len) { in file_check_mem()
612 len = (ms->c.len = 20 + level) * sizeof(*ms->c.li); in file_check_mem()
613 ms->c.li = CAST(struct level_info *, (ms->c.li == NULL) ? in file_check_mem()
615 realloc(ms->c.li, len)); in file_check_mem()
616 if (ms->c.li == NULL) { in file_check_mem()
617 file_oomem(ms, len); in file_check_mem()
621 ms->c.li[level].got_match = 0; in file_check_mem()
623 ms->c.li[level].last_match = 0; in file_check_mem()
624 ms->c.li[level].last_cond = COND_NONE; in file_check_mem()
630 file_printedlen(const struct magic_set *ms) in file_printedlen() argument
632 return ms->o.blen; in file_printedlen()
636 file_replace(struct magic_set *ms, const char *pat, const char *rep) in file_replace() argument
641 rc = file_regcomp(ms, &rx, pat, REG_EXTENDED); in file_replace()
645 while (file_regexec(ms, &rx, ms->o.buf, 1, &rm, 0) == 0) { in file_replace()
646 ms->o.buf[rm.rm_so] = '\0'; in file_replace()
647 if (file_printf(ms, "%s%s", rep, in file_replace()
648 rm.rm_eo != 0 ? ms->o.buf + rm.rm_eo : "") == -1) in file_replace()
660 file_regcomp(struct magic_set *ms file_locale_used, file_regex_t *rx, in file_regcomp()
664 locale_t old = uselocale(ms->c_lc_ctype); in file_regcomp()
679 if (rc > 0 && (ms->flags & MAGIC_CHECK)) { in file_regcomp()
683 file_magerror(ms, "regex error %d for `%s', (%s)", rc, pat, in file_regcomp()
691 file_regexec(struct magic_set *ms file_locale_used, file_regex_t *rx, in file_regexec()
695 locale_t old = uselocale(ms->c_lc_ctype); in file_regexec()
722 file_push_buffer(struct magic_set *ms) in file_push_buffer() argument
726 if (ms->event_flags & EVENT_HAD_ERR) in file_push_buffer()
732 pb->buf = ms->o.buf; in file_push_buffer()
733 pb->blen = ms->o.blen; in file_push_buffer()
734 pb->offset = ms->offset; in file_push_buffer()
736 ms->o.buf = NULL; in file_push_buffer()
737 ms->o.blen = 0; in file_push_buffer()
738 ms->offset = 0; in file_push_buffer()
744 file_pop_buffer(struct magic_set *ms, file_pushbuf_t *pb) in file_pop_buffer() argument
748 if (ms->event_flags & EVENT_HAD_ERR) { in file_pop_buffer()
754 rbuf = ms->o.buf; in file_pop_buffer()
756 ms->o.buf = pb->buf; in file_pop_buffer()
757 ms->o.blen = pb->blen; in file_pop_buffer()
758 ms->offset = pb->offset; in file_pop_buffer()
768 file_printable(struct magic_set *ms, char *buf, size_t bufsiz, in file_printable() argument
776 if ((ms->flags & MAGIC_RAW) != 0 || isprint(*s)) { in file_printable()