curl/docs/examples
Radoslav Georgiev abfd154efd
examples/http2-down/upload: add error checks
If `index.html` does not exist in the directory from which the example
is invoked, the fopen(upload, "rb") invocation in `setup` would fail,
returning NULL.  This value is subsequently passed as the FILE* argument
of the `fread` invocation in the `read_callback` function, which is the
actual cause of the crash (apparently `fread` assumes that argument to
be non-null).

In addition, mitigate some possible crashes of similar origin.

Closes #5463
2020-06-02 00:14:08 +02:00
..
.checksrc source cleanup: remove all custom typedef structs 2020-05-15 08:54:42 +02:00
.gitignore
10-at-a-time.c
adddocsref.pl copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
altsvc.c
anyauthput.c all: fix codespell errors 2020-05-25 19:44:04 +00:00
cacertinmem.c
certinfo.c
chkspeed.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
cookie_interface.c
crawler.c src: Remove C99 constructs to ensure C89 compliance 2020-04-19 21:56:52 +02:00
curlgtk.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
curlx.c all: fix codespell errors 2020-05-25 19:44:04 +00:00
debug.c
ephiperfifo.c examples/ephiperfifo: turn off interval when setting timerfd 2020-06-02 00:11:38 +02:00
evhiperfifo.c
externalsocket.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
fileupload.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
fopen.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
ftp-wildcard.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
ftpget.c
ftpgetinfo.c
ftpgetresp.c
ftpsget.c
ftpupload.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
ftpuploadfrommem.c
ftpuploadresume.c
getinfo.c
getinmemory.c
getredirect.c
ghiper.c
hiperfifo.c defines: avoid underscore-prefixed defines 2019-08-23 11:47:57 +02:00
href_extractor.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
htmltidy.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
htmltitle.cpp copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
http2-download.c examples/http2-down/upload: add error checks 2020-06-02 00:14:08 +02:00
http2-pushinmemory.c
http2-serverpush.c
http2-upload.c examples/http2-down/upload: add error checks 2020-06-02 00:14:08 +02:00
http3-present.c
http3.c
http-post.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
httpcustomheader.c
httpput.c
https.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
imap-append.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
imap-authzid.c
imap-copy.c
imap-create.c
imap-delete.c
imap-examine.c
imap-fetch.c
imap-list.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
imap-lsub.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
imap-multi.c
imap-noop.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
imap-search.c
imap-ssl.c
imap-store.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
imap-tls.c
Makefile.am source cleanup: remove all custom typedef structs 2020-05-15 08:54:42 +02:00
makefile.dj copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
Makefile.example copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
Makefile.inc examples: remove asiohiper.cpp 2020-05-02 12:29:58 +02:00
Makefile.m32 copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
Makefile.netware copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
multi-app.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
multi-debugcallback.c
multi-double.c
multi-event.c checksrc: enhance the ASTERISKSPACE and update code accordingly 2020-05-14 00:02:05 +02:00
multi-formadd.c
multi-poll.c examples: add multi-poll.c 2019-11-14 23:24:00 +01:00
multi-post.c
multi-single.c
multi-uv.c checksrc: enhance the ASTERISKSPACE and update code accordingly 2020-05-14 00:02:05 +02:00
multithread.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
opensslthreadlock.c
parseurl.c
persistent.c
pop3-authzid.c
pop3-dele.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
pop3-list.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
pop3-multi.c
pop3-noop.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
pop3-retr.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
pop3-ssl.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
pop3-stat.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
pop3-tls.c
pop3-top.c
pop3-uidl.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
post-callback.c
postinmemory.c examples/postinmemory.c: Call curl_global_cleanup always 2019-12-24 01:06:47 -05:00
postit2-formadd.c examples: remove the "this exact code has not been verified" 2019-10-29 09:48:49 +01:00
postit2.c examples: remove the "this exact code has not been verified" 2019-10-29 09:48:49 +01:00
progressfunc.c
README
resolve.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
rtsp.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
sampleconv.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
sendrecv.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
sepheaders.c
sessioninfo.c examples/sessioninfo.c: add include to fix compiler warning 2020-03-31 14:32:29 +02:00
sftpget.c
sftpuploadresume.c
shared-connection-cache.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
simple.c
simplepost.c
simplessl.c
smooth-gtk-thread.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
smtp-authzid.c
smtp-expn.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
smtp-mail.c
smtp-mime.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
smtp-multi.c
smtp-ssl.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
smtp-tls.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
smtp-vrfy.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
sslbackend.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
synctime.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
threaded-shared-conn.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
threaded-ssl.c copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
url2file.c url2file.c: fix copyright year 2019-12-21 18:18:12 +01:00
urlapi.c
usercertinmem.c copyrights: fix copyright year range 2019-11-08 14:51:42 +01:00
version-check.pl copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
xmlstream.c

                                  _   _ ____  _
                              ___| | | |  _ \| |
                             / __| | | | |_) | |
                            | (__| |_| |  _ <| |___
                             \___|\___/|_| \_\_____|

This directory is for libcurl programming examples. They are meant to show
some simple steps on how you can build your own application to take full
advantage of libcurl.

If you end up with other small but still useful example sources, please mail
them for submission in future packages and on the web site.

BUILDING

The Makefile.example is an example makefile that could be used to build these
examples. Just edit the file according to your system and requirements first.

Most examples should build fine using a command line like this:

  $ `curl-config --cc --cflags --libs` -o example example.c

Some compilers don't like having the arguments in this order but instead
want you do reorganize them like:

  $ `curl-config --cc` -o example example.c `curl-config --cflags --libs`

*PLEASE* do not use the curl.haxx.se site as a test target for your libcurl
applications/experiments. Even if some of the examples use that site as a URL
at some places, it doesn't mean that the URLs work or that we expect you to
actually torture our web site with your tests!  Thanks.

EXAMPLES

Each example source code file is designed to be and work stand-alone and
rather self-explanatory. The examples may at times lack the level of error
checks you need in a real world, but that is then only for the sake of
readability: to make the code smaller and easier to follow.