Index: ex-cert-select.c =================================================================== RCS file: /cvs/gnutls/gnutls/doc/examples/ex-cert-select.c,v retrieving revision 1.5 diff -u -r1.5 ex-cert-select.c --- ex-cert-select.c 10 Aug 2005 09:09:04 -0000 1.5 +++ ex-cert-select.c 22 Sep 2005 20:05:19 -0000 @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include @@ -37,38 +36,34 @@ gnutls_x509_privkey_t key; /* Helper functions to load a certificate and key - * files into memory. They use mmap for simplicity. + * files into memory. */ -static gnutls_datum_t -mmap_file (const char *file) +static gnutls_datum +load_file (const char *file) { - int fd; - gnutls_datum_t mmaped_file = { NULL, 0 }; - struct stat stat_st; + FILE *f; + gnutls_datum loaded_file = { NULL, 0 }; + long filelen; void *ptr; - fd = open (file, 0); - if (fd == -1) - return mmaped_file; - - fstat (fd, &stat_st); - - ptr = mmap (NULL, stat_st.st_size, PROT_READ, MAP_SHARED, fd, 0); - close (fd); - - if (ptr == MAP_FAILED) - return mmaped_file; - - mmaped_file.data = ptr; - mmaped_file.size = stat_st.st_size; + if (!(f = fopen(file, "r")) + || fseek(f, 0, SEEK_END) != 0 + || (filelen = ftell(f)) < 0 + || fseek(f, 0, SEEK_SET) != 0 + || !(ptr = malloc((size_t)filelen)) + || fread(ptr, 1, (size_t)filelen, f) < (size_t)filelen) + { + return loaded_file; + } - return mmaped_file; + loaded_file.data = ptr; + loaded_file.size = (unsigned int)filelen; + return loaded_file; } -static void -munmap_file (gnutls_datum_t data) +static void unload_file(gnutls_datum data) { - munmap (data.data, data.size); + free(data.data); } /* Load the certificate and the private key. @@ -79,7 +74,7 @@ int ret; gnutls_datum_t data; - data = mmap_file (CERT_FILE); + data = load_file (CERT_FILE); if (data.data == NULL) { fprintf (stderr, "*** Error loading cert file.\n"); @@ -95,9 +90,9 @@ exit (1); } - munmap_file (data); + unload_file (data); - data = mmap_file (KEY_FILE); + data = load_file (KEY_FILE); if (data.data == NULL) { fprintf (stderr, "*** Error loading key file.\n"); @@ -114,7 +109,7 @@ exit (1); } - munmap_file (data); + unload_file (data); } Index: ex-serv-anon.c =================================================================== RCS file: /cvs/gnutls/gnutls/doc/examples/ex-serv-anon.c,v retrieving revision 1.3 diff -u -r1.3 ex-serv-anon.c --- ex-serv-anon.c 10 Aug 2005 09:09:04 -0000 1.3 +++ ex-serv-anon.c 22 Sep 2005 20:05:19 -0000 @@ -132,7 +132,7 @@ i = 0; for (;;) { - bzero (buffer, MAX_BUF + 1); + memset (buffer, 0, MAX_BUF + 1); ret = gnutls_record_recv (session, buffer, MAX_BUF); if (ret == 0) Index: ex-serv-export.c =================================================================== RCS file: /cvs/gnutls/gnutls/doc/examples/ex-serv-export.c,v retrieving revision 1.4 diff -u -r1.4 ex-serv-export.c --- ex-serv-export.c 10 Aug 2005 09:09:04 -0000 1.4 +++ ex-serv-export.c 22 Sep 2005 20:05:20 -0000 @@ -191,7 +191,7 @@ i = 0; for (;;) { - bzero (buffer, MAX_BUF + 1); + memset (buffer, 0, MAX_BUF + 1); ret = gnutls_record_recv (session, buffer, MAX_BUF); if (ret == 0) Index: ex-serv-pgp.c =================================================================== RCS file: /cvs/gnutls/gnutls/doc/examples/ex-serv-pgp.c,v retrieving revision 1.4 diff -u -r1.4 ex-serv-pgp.c --- ex-serv-pgp.c 10 Aug 2005 09:09:04 -0000 1.4 +++ ex-serv-pgp.c 22 Sep 2005 20:05:20 -0000 @@ -151,7 +151,7 @@ i = 0; for (;;) { - bzero (buffer, MAX_BUF + 1); + memset (buffer, 0, MAX_BUF + 1); ret = gnutls_record_recv (session, buffer, MAX_BUF); if (ret == 0) Index: ex-serv-srp.c =================================================================== RCS file: /cvs/gnutls/gnutls/doc/examples/ex-serv-srp.c,v retrieving revision 1.4 diff -u -r1.4 ex-serv-srp.c --- ex-serv-srp.c 10 Aug 2005 09:09:04 -0000 1.4 +++ ex-serv-srp.c 22 Sep 2005 20:05:20 -0000 @@ -135,7 +135,7 @@ i = 0; for (;;) { - bzero (buffer, MAX_BUF + 1); + memset (buffer, 0, MAX_BUF + 1); ret = gnutls_record_recv (session, buffer, MAX_BUF); if (ret == 0) Index: ex-serv1.c =================================================================== RCS file: /cvs/gnutls/gnutls/doc/examples/ex-serv1.c,v retrieving revision 1.5 diff -u -r1.5 ex-serv1.c --- ex-serv1.c 10 Aug 2005 09:09:04 -0000 1.5 +++ ex-serv1.c 22 Sep 2005 20:05:21 -0000 @@ -147,7 +147,7 @@ i = 0; for (;;) { - bzero (buffer, MAX_BUF + 1); + memset (buffer, 0, MAX_BUF + 1); ret = gnutls_record_recv (session, buffer, MAX_BUF); if (ret == 0)