Commit 88bdf747 authored by Stefano Sabatini's avatar Stefano Sabatini

ffprobe: move up ESCAPE_CHECK_SIZE and ESCAPE_REALLOC_BUF macros

So they can be used by other escaping routines.
parent 2f3b028c
...@@ -335,6 +335,31 @@ fail: ...@@ -335,6 +335,31 @@ fail:
return NULL; return NULL;
} }
#define ESCAPE_INIT_BUF_SIZE 256
#define ESCAPE_CHECK_SIZE(src, size, max_size) \
if (size > max_size) { \
char buf[64]; \
snprintf(buf, sizeof(buf), "%s", src); \
av_log(log_ctx, AV_LOG_WARNING, \
"String '%s...' with is too big\n", buf); \
return "FFPROBE_TOO_BIG_STRING"; \
}
#define ESCAPE_REALLOC_BUF(dst_size_p, dst_p, src, size) \
if (*dst_size_p < size) { \
char *q = av_realloc(*dst_p, size); \
if (!q) { \
char buf[64]; \
snprintf(buf, sizeof(buf), "%s", src); \
av_log(log_ctx, AV_LOG_WARNING, \
"String '%s...' could not be escaped\n", buf); \
return "FFPROBE_THIS_STRING_COULD_NOT_BE_ESCAPED"; \
} \
*dst_size_p = size; \
*dst = q; \
}
/* WRITERS */ /* WRITERS */
/* Default output */ /* Default output */
...@@ -414,8 +439,6 @@ typedef struct { ...@@ -414,8 +439,6 @@ typedef struct {
size_t buf_size; size_t buf_size;
} JSONContext; } JSONContext;
#define ESCAPE_INIT_BUF_SIZE 256
static av_cold int json_init(WriterContext *wctx, const char *args, void *opaque) static av_cold int json_init(WriterContext *wctx, const char *args, void *opaque)
{ {
JSONContext *json = wctx->priv; JSONContext *json = wctx->priv;
...@@ -433,29 +456,6 @@ static av_cold void json_uninit(WriterContext *wctx) ...@@ -433,29 +456,6 @@ static av_cold void json_uninit(WriterContext *wctx)
av_freep(&json->buf); av_freep(&json->buf);
} }
#define ESCAPE_CHECK_SIZE(src, size, max_size) \
if (size > max_size) { \
char buf[64]; \
snprintf(buf, sizeof(buf), "%s", src); \
av_log(log_ctx, AV_LOG_WARNING, \
"String '%s...' with is too big\n", buf); \
return "FFPROBE_TOO_BIG_STRING"; \
}
#define ESCAPE_REALLOC_BUF(dst_size_p, dst_p, src, size) \
if (*dst_size_p < size) { \
char *q = av_realloc(*dst_p, size); \
if (!q) { \
char buf[64]; \
snprintf(buf, sizeof(buf), "%s", src); \
av_log(log_ctx, AV_LOG_WARNING, \
"String '%s...' could not be escaped\n", buf); \
return "FFPROBE_THIS_STRING_COULD_NOT_BE_ESCAPED"; \
} \
*dst_size_p = size; \
*dst = q; \
}
static const char *json_escape_str(char **dst, size_t *dst_size, const char *src, static const char *json_escape_str(char **dst, size_t *dst_size, const char *src,
void *log_ctx) void *log_ctx)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment