Skip to content

Instantly share code, notes, and snippets.

@klaxa
Last active August 29, 2015 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save klaxa/dd33e5c5d67d24f8374e to your computer and use it in GitHub Desktop.
Save klaxa/dd33e5c5d67d24f8374e to your computer and use it in GitHub Desktop.
[...]
char *useragent = NULL;
char *resource = NULL;
char *method = NULL;
char *version = NULL;
char *hostinfo_cpy = NULL;
char *query_cpy = NULL;
if ((ret = avio_handshake(c->proto_ctx)) > 0) {
if ((ret = av_opt_get(c->proto_ctx, "method", AV_OPT_SEARCH_CHILDREN, &method)) < 0) {
av_log(c->proto_ctx, AV_LOG_TRACE, "av_opt_get for method failed\n");
return -1;
}
if (!(method && strlen(method)))
return AVERROR(EAGAIN);
av_log(NULL, AV_LOG_TRACE, "avio_handshake ret=%d\n", ret);
}
av_log(NULL, AV_LOG_TRACE, "Handshake header read.\n");
if (ret < 0)
goto send_error;
av_log(c->proto_ctx, AV_LOG_TRACE, "method=%s\n", method);
av_strlcpy(c->method, method, sizeof(c->method));
if (!strcmp(method, "GET"))
c->post = 0;
else if (!strcmp(method, "POST"))
c->post = 1;
else
return -1;
av_log(c->proto_ctx, AV_LOG_TRACE, "Getting resource and http version\n");
av_opt_get(c->proto_ctx, "resource", AV_OPT_SEARCH_CHILDREN, &resource);
av_opt_get(c->proto_ctx, "http_version", AV_OPT_SEARCH_CHILDREN, &version);
av_opt_get(c->proto_ctx, "host", AV_OPT_SEARCH_CHILDREN, &hostinfo_cpy);
av_opt_get(c->proto_ctx, "query", AV_OPT_SEARCH_CHILDREN, &query_cpy);
av_opt_get_dict_val(c->proto_ctx, "headers_dict", AV_OPT_SEARCH_CHILDREN, &headers_dict);
while ((t = av_dict_get(headers_dict, "", t, AV_DICT_IGNORE_SUFFIX))) {
if (!av_strncasecmp(t->key, "User-Agent", 10))
useragent = av_strdup(t->value);
av_log(c->proto_ctx, AV_LOG_TRACE, "%s: %s\n", t->key, t->value);
}
if (resource[0] == '/')
resource++;
av_strlcpy(c->url, resource, sizeof(c->url));
if (strcmp(version, "HTTP/1.0") && strcmp(version, "HTTP/1.1"))
return -1;
av_strlcpy(c->protocol, version, sizeof(c->protocol));
av_log(c->proto_ctx, AV_LOG_TRACE, "Got resource (%s) and version (%s)\n", resource, version);
if (config.debug)
http_log("%s - - New connection: %s %s\n",
inet_ntoa(c->from_addr.sin_addr), method, c->url);
av_strlcpy(filename, resource, sizeof(filename));
av_strlcpy(query, query_cpy, sizeof(query));
av_free(method);
av_free(resource);
av_free(version);
av_free(query_cpy);
[...]
Fri Aug 21 02:46:38 2015 avio_handshake ret=0
Fri Aug 21 02:46:38 2015 Handshake header read.
Fri Aug 21 02:46:38 2015 [AVIOContext @ 0x2806c20]method=GET
Fri Aug 21 02:46:38 2015 [AVIOContext @ 0x2806c20]Getting resource and http version
Fri Aug 21 02:46:38 2015 [AVIOContext @ 0x2806c20]:
Fri Aug 21 02:46:38 2015 [AVIOContext @ 0x2806c20]User-Agent: Lavf/56.40.101
Fri Aug 21 02:46:38 2015 [AVIOContext @ 0x2806c20]Accept: */*
Fri Aug 21 02:46:38 2015 [AVIOContext @ 0x2806c20]Range: bytes=0-
Fri Aug 21 02:46:38 2015 [AVIOContext @ 0x2806c20]Connection: close
Fri Aug 21 02:46:38 2015 [AVIOContext @ 0x2806c20]Host: localhost:8090
Fri Aug 21 02:46:38 2015 [AVIOContext @ 0x2806c20]Icy-MetaData: 1
Fri Aug 21 02:46:38 2015 [AVIOContext @ 0x2806c20]Got resource (asdffeed1.ffm) and version (HTTP/1.1)
*** Error in `./ffserver_g': free(): invalid pointer: 0x0000000002807141 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x77d9e)[0x7fc6129f8d9e]
/lib64/libc.so.6(cfree+0x5b5)[0x7fc612a049f5]
./ffserver_g[0x11a5ce2]
./ffserver_g[0x11a5d1a]
./ffserver_g[0x416b92]
./ffserver_g[0x4157e3]
./ffserver_g[0x4147f7]
./ffserver_g[0x41d962]
/lib64/libc.so.6(__libc_start_main+0xf0)[0x7fc6129a0fe0]
./ffserver_g[0x407819]
======= Memory map: ========
00400000-01576000 r-xp 00000000 fd:01 33837338 /home/klaxa/Development/ffmpeg/ffmpeg/ffserver_g
01775000-01776000 r--p 01175000 fd:01 33837338 /home/klaxa/Development/ffmpeg/ffmpeg/ffserver_g
01776000-017b2000 rw-p 01176000 fd:01 33837338 /home/klaxa/Development/ffmpeg/ffmpeg/ffserver_g
017b2000-01e50000 rw-p 00000000 00:00 0
027d7000-02842000 rw-p 00000000 00:00 0 [heap]
7fc610d2c000-7fc610d38000 r-xp 00000000 08:01 10493002 /usr/lib64/libnss_files-2.20.so
7fc610d38000-7fc610f37000 ---p 0000c000 08:01 10493002 /usr/lib64/libnss_files-2.20.so
7fc610f37000-7fc610f38000 r--p 0000b000 08:01 10493002 /usr/lib64/libnss_files-2.20.so
7fc610f38000-7fc610f39000 rw-p 0000c000 08:01 10493002 /usr/lib64/libnss_files-2.20.so
7fc610f39000-7fc610fa5000 r-xp 00000000 08:01 10490726 /usr/lib64/libpcre.so.1.2.3
7fc610fa5000-7fc6111a4000 ---p 0006c000 08:01 10490726 /usr/lib64/libpcre.so.1.2.3
7fc6111a4000-7fc6111a5000 r--p 0006b000 08:01 10490726 /usr/lib64/libpcre.so.1.2.3
7fc6111a5000-7fc6111a6000 rw-p 0006c000 08:01 10490726 /usr/lib64/libpcre.so.1.2.3
7fc6111a6000-7fc6111c7000 r-xp 00000000 08:01 10496727 /usr/lib64/libselinux.so.1
7fc6111c7000-7fc6113c7000 ---p 00021000 08:01 10496727 /usr/lib64/libselinux.so.1
7fc6113c7000-7fc6113c8000 r--p 00021000 08:01 10496727 /usr/lib64/libselinux.so.1
7fc6113c8000-7fc6113c9000 rw-p 00022000 08:01 10496727 /usr/lib64/libselinux.so.1
7fc6113c9000-7fc6113cb000 rw-p 00000000 00:00 0
7fc6113cb000-7fc6113e2000 r-xp 00000000 08:01 10493081 /usr/lib64/libresolv-2.20.so
7fc6113e2000-7fc6115e1000 ---p 00017000 08:01 10493081 /usr/lib64/libresolv-2.20.so
7fc6115e1000-7fc6115e2000 r--p 00016000 08:01 10493081 /usr/lib64/libresolv-2.20.so
7fc6115e2000-7fc6115e3000 rw-p 00017000 08:01 10493081 /usr/lib64/libresolv-2.20.so
7fc6115e3000-7fc6115e5000 rw-p 00000000 00:00 0
7fc6115e5000-7fc6115e8000 r-xp 00000000 08:01 10494077 /usr/lib64/libkeyutils.so.1.5
7fc6115e8000-7fc6117e7000 ---p 00003000 08:01 10494077 /usr/lib64/libkeyutils.so.1.5
7fc6117e7000-7fc6117e8000 r--p 00002000 08:01 10494077 /usr/lib64/libkeyutils.so.1.5
7fc6117e8000-7fc6117e9000 rw-p 00003000 08:01 10494077 /usr/lib64/libkeyutils.so.1.5
7fc6117e9000-7fc6117f7000 r-xp 00000000 08:01 10495578 /usr/lib64/libkrb5support.so.0.1
7fc6117f7000-7fc6119f6000 ---p 0000e000 08:01 10495578 /usr/lib64/libkrb5support.so.0.1
7fc6119f6000-7fc6119f7000 r--p 0000d000 08:01 10495578 /usr/lib64/libkrb5support.so.0.1
7fc6119f7000-7fc6119f8000 rw-p 0000e000 08:01 10495578 /usr/lib64/libkrb5support.so.0.1
7fc6119f8000-7fc611a0e000 r-xp 00000000 08:01 10495443 /usr/lib64/libgcc_s-4.9.2-20150212.so.1
7fc611a0e000-7fc611c0d000 ---p 00016000 08:01 10495443 /usr/lib64/libgcc_s-4.9.2-20150212.so.1
7fc611c0d000-7fc611c0e000 r--p 00015000 08:01 10495443 /usr/lib64/libgcc_s-4.9.2-20150212.so.1
7fc611c0e000-7fc611c0f000 rw-p 00016000 08:01 10495443 /usr/lib64/libgcc_s-4.9.2-20150212.so.1
7fc611c0f000-7fc611c15000 r-xp 00000000 08:01 10494200 /usr/lib64/libogg.so.0.8.0
7fc611c15000-7fc611e14000 ---p 00006000 08:01 10494200 /usr/lib64/libogg.so.0.8.0
7fc611e14000-7fc611e15000 r--p 00005000 08:01 10494200 /usr/lib64/libogg.so.0.8.0
7fc611e15000-7fc611e16000 rw-p 00006000 08:01 10494200 /usr/lib64/libogg.so.0.8.0
7fc611e16000-7fc611e46000 r-xp 00000000 08:01 10493936 /usr/lib64/libk5crypto.so.3.1
7fc611e46000-7fc612045000 ---p 00030000 08:01 10493936 /usr/lib64/libk5crypto.so.3.1
7fc612045000-7fc612047000 r--p 0002f000 08:01 10493936 /usr/lib64/libk5crypto.so.3.1
7fc612047000-7fc612048000 rw-p 00031000 08:01 10493936 /usr/lib64/libk5crypto.so.3.1
7fc612048000-7fc612049000 rw-p 00000000 00:00 0
7fc612049000-7fc61204c000 r-xp 00000000 08:01 10492576 /usr/lib64/libcom_err.so.2.1
7fc61204c000-7fc61224b000 ---p 00003000 08:01 10492576 /usr/lib64/libcom_err.so.2.1
7fc61224b000-7fc61224c000 r--p 00002000 08:01 10492576 /usr/lib64/libcom_err.so.2.1
7fc61224c000-7fc61224d000 rw-p 00003000 08:01 10492576 /usr/lib64/libcom_err.so.2.1
7fc61224d000-7fc612320000 r-xp 00000000 08:01 10494081 /usr/lib64/libkrb5.so.3.3
7fc612320000-7fc61251f000 ---p 000d3000 08:01 10494081 /usr/lib64/libkrb5.so.3.3
7fc61251f000-7fc61252d000 r--p 000d2000 08:01 10494081 /usr/lib64/libkrb5.so.3.3
7fc61252d000-7fc612530000 rw-p 000e0000 08:01 10494081 /usr/lib64/libkrb5.so.3.3
7fc612530000-7fc612579000 r-xp 00000000 08:01 10487399 /usr/lib64/libgssapi_krb5.so.2.2
7fc612579000-7fc612779000 ---p 00049000 08:01 10487399 /usr/lib64/libgssapi_krb5.so.2.2
7fc612779000-7fc61277b000 r--p 00049000 08:01 10487399 /usr/lib64/libgssapi_krb5.so.2.2
7fc61277b000-7fc61277d000 rw-p 0004b000 08:01 10487399 /usr/lib64/libgssapi_krb5.so.2.2
7fc61277d000-7fc612780000 r-xp 00000000 08:01 10492584 /usr/lib64/libdl-2.20.so
7fc612780000-7fc61297f000 ---p 00003000 08:01 10492584 /usr/lib64/libdl-2.20.so
7fc61297f000-7fc612980000 r--p 00002000 08:01 10492584 /usr/lib64/libdl-2.20.so
7fc612980000-7fc612981000 rw-p 00003000 08:01 10492584 /usr/lib64/libdl-2.20.so
7fc612981000-7fc612b34000 r-xp 00000000 08:01 10492474 /usr/lib64/libc-2.20.so
7fc612b34000-7fc612d34000 ---p 001b3000 08:01 10492474 /usr/lib64/libc-2.20.so
7fc612d34000-7fc612d38000 r--p 001b3000 08:01 10492474 /usr/lib64/libc-2.20.so
7fc612d38000-7fc612d3a000 rw-p 001b7000 08:01 10492474 /usr/lib64/libc-2.20.so
7fc612d3a000-7fc612d3e000 rw-p 00000000 00:00 0
7fc612d3e000-7fc612d53000 r-xp 00000000 08:01 10494599 /usr/lib64/libz.so.1.2.8
7fc612d53000-7fc612f52000 ---p 00015000 08:01 10494599 /usr/lib64/libz.so.1.2.8
7fc612f52000-7fc612f53000 r--p 00014000 08:01 10494599 /usr/lib64/libz.so.1.2.8
7fc612f53000-7fc612f54000 rw-p 00015000 08:01 10494599 /usr/lib64/libz.so.1.2.8
7fc612f54000-7fc613005000 r-xp 00000000 08:01 11017434 /usr/local/lib/libfdk-aac.so.1.0.0
7fc613005000-7fc613204000 ---p 000b1000 08:01 11017434 /usr/local/lib/libfdk-aac.so.1.0.0
7fc613204000-7fc613206000 r--p 000b0000 08:01 11017434 /usr/local/lib/libfdk-aac.so.1.0.0
7fc613206000-7fc613207000 rw-p 000b2000 08:01 11017434 /usr/local/lib/libfdk-aac.so.1.0.0
7fc613207000-7fc613209000 rw-p 00000000 00:00 0
7fc613209000-7fc613251000 r-xp 00000000 08:01 10495972 /usr/lib64/libmp3lame.so.0.0.0
7fc613251000-7fc613451000 ---p 00048000 08:01 10495972 /usr/lib64/libmp3lame.so.0.0.0
7fc613451000-7fc613452000 r--p 00048000 08:01 10495972 /usr/lib64/libmp3lame.so.0.0.0
7fc613452000-7fc613453000 rw-p 00049000 08:01 10495972 /usr/lib64/libmp3lame.so.0.0.0
7fc613453000-7fc613481000 rw-p 00000000 00:00 0
7fc613481000-7fc6134cc000 r-xp 00000000 08:01 10494207 /usr/lib64/libopus.so.0.5.0
7fc6134cc000-7fc6136cb000 ---p 0004b000 08:01 10494207 /usr/lib64/libopus.so.0.5.0
7fc6136cb000-7fc6136cc000 r--p 0004a000 08:01 10494207 /usr/lib64/libopus.so.0.5.0
7fc6136cc000-7fc6136cd000 rw-p 0004b000 08:01 10494207 /usr/lib64/libopus.so.0.5.0
7fc6136cd000-7fc6136f8000 r-xp 00000000 08:01 10494470 /usr/lib64/libvorbis.so.0.4.7
7fc6136f8000-7fc6138f8000 ---p 0002b000 08:01 10494470 /usr/lib64/libvorbis.so.0.4.7
7fc6138f8000-7fc6138f9000 r--p 0002b000 08:01 10494470 /usr/lib64/libvorbis.so.0.4.7
7fc6138f9000-7fc6138fa000 rw-p 0002c000 08:01 10494470 /usr/lib64/libvorbis.so.0.4.7
7fc6138fa000-7fc61398b000 r-xp 00000000 08:01 10494471 /usr/lib64/libvorbisenc.so.2.0.10
7fc61398b000-7fc613b8a000 ---p 00091000 08:01 10494471 /usr/lib64/libvorbisenc.so.2.0.10
7fc613b8a000-7fc613bac000 r--p 00090000 08:01 10494471 /usr/lib64/libvorbisenc.so.2.0.10
7fc613bac000-7fc613bad000 rw-p 000b2000 08:01 10494471 /usr/lib64/libvorbisenc.so.2.0.10
7fc613bad000-7fc613cb4000 r-xp 00000000 08:01 10492607 /usr/lib64/libm-2.20.so
7fc613cb4000-7fc613eb3000 ---p 00107000 08:01 10492607 /usr/lib64/libm-2.20.so
7fc613eb3000-7fc613eb4000 r--p 00106000 08:01 10492607 /usr/lib64/libm-2.20.so
7fc613eb4000-7fc613eb5000 rw-p 00107000 08:01 10492607 /usr/lib64/libm-2.20.so
7fc613eb5000-7fc613ff6000 r-xp 00000000 08:01 10494474 /usr/lib64/libvpx.so.1.3.0
7fc613ff6000-7fc6141f5000 ---p 00141000 08:01 10494474 /usr/lib64/libvpx.so.1.3.0
7fc6141f5000-7fc6141f7000 r--p 00140000 08:01 10494474 /usr/lib64/libvpx.so.1.3.0
7fc6141f7000-7fc6141f8000 rw-p 00142000 08:01 10494474 /usr/lib64/libvpx.so.1.3.0
7fc6141f8000-7fc61423e000 rw-p 00000000 00:00 0
7fc61423e000-7fc614336000 r-xp 00000000 08:01 10493548 /usr/lib64/libx264.so.142
7fc614336000-7fc614536000 ---p 000f8000 08:01 10493548 /usr/lib64/libx264.so.142
7fc614536000-7fc614537000 r--p 000f8000 08:01 10493548 /usr/lib64/libx264.so.142
7fc614537000-7fc614538000 rw-p 000f9000 08:01 10493548 /usr/lib64/libx264.so.142
7fc614538000-7fc6145b3000 rw-p 00000000 00:00 0
7fc6145b3000-7fc614773000 r-xp 00000000 08:01 10492346 /usr/lib64/libcrypto.so.1.0.1k
7fc614773000-7fc614972000 ---p 001c0000 08:01 10492346 /usr/lib64/libcrypto.so.1.0.1k
7fc614972000-7fc61498f000 r--p 001bf000 08:01 10492346 /usr/lib64/libcrypto.so.1.0.1k
7fc61498f000-7fc61499c000 rw-p 001dc000 08:01 10492346 /usr/lib64/libcrypto.so.1.0.1k
7fc61499c000-7fc6149a0000 rw-p 00000000 00:00 0
7fc6149a0000-7fc614a05000 r-xp 00000000 08:01 10495856 /usr/lib64/libssl.so.1.0.1k
7fc614a05000-7fc614c04000 ---p 00065000 08:01 10495856 /usr/lib64/libssl.so.1.0.1k
7fc614c04000-7fc614c08000 r--p 00064000 08:01 10495856 /usr/lib64/libssl.so.1.0.1k
7fc614c08000-7fc614c0f000 rw-p 00068000 08:01 10495856 /usr/lib64/libssl.so.1.0.1k
7fc614c0f000-7fc614c26000 r-xp 00000000 08:01 10493006 /usr/lib64/libpthread-2.20.so
7fc61Aborted (core dumped)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment