From 6ddfa55804cca3706e4f9fe803a76b7bc5310d47 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 6 Jan 2018 16:37:32 +0100 Subject: fix indentation and use after free in tcp plugin --- src/fs/fs_download.c | 3 +- src/fs/gnunet-download.c | 145 ++++++++++++++++++++++++++++------------------- 2 files changed, 90 insertions(+), 58 deletions(-) (limited to 'src/fs') diff --git a/src/fs/fs_download.c b/src/fs/fs_download.c index ce852f2d0..c2a3d4c5d 100644 --- a/src/fs/fs_download.c +++ b/src/fs/fs_download.c @@ -37,7 +37,8 @@ static int is_recursive_download (struct GNUNET_FS_DownloadContext *dc) { return (0 != (dc->options & GNUNET_FS_DOWNLOAD_OPTION_RECURSIVE)) && - ( (GNUNET_YES == GNUNET_FS_meta_data_test_for_directory (dc->meta)) || + ( (GNUNET_YES == + GNUNET_FS_meta_data_test_for_directory (dc->meta)) || ( (NULL == dc->meta) && ( (NULL == dc->filename) || ( (strlen (dc->filename) >= strlen (GNUNET_FS_DIRECTORY_EXT)) && diff --git a/src/fs/gnunet-download.c b/src/fs/gnunet-download.c index 83c1eb505..27266a18a 100644 --- a/src/fs/gnunet-download.c +++ b/src/fs/gnunet-download.c @@ -124,7 +124,8 @@ display_bar (unsigned long long x, * field in the `struct GNUNET_FS_ProgressInfo` */ static void * -progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) +progress_cb (void *cls, + const struct GNUNET_FS_ProgressInfo *info) { char *s; const char *s2; @@ -134,7 +135,8 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) { case GNUNET_FS_STATUS_DOWNLOAD_START: if (verbose > 1) - FPRINTF (stderr, _("Starting download `%s'.\n"), + FPRINTF (stderr, + _("Starting download `%s'.\n"), info->value.download.filename); break; case GNUNET_FS_STATUS_DOWNLOAD_PROGRESS: @@ -146,8 +148,7 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) == GNUNET_TIME_UNIT_FOREVER_REL.rel_value_us) s2 = _(""); else - s2 = GNUNET_STRINGS_relative_time_to_string ( - info->value.download.specifics.progress.block_download_duration, + s2 = GNUNET_STRINGS_relative_time_to_string (info->value.download.specifics.progress.block_download_duration, GNUNET_YES); t = GNUNET_STRINGS_byte_size_fancy (info->value.download.completed * 1000LL / @@ -157,7 +158,10 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) _("Downloading `%s' at %llu/%llu (%s remaining, %s/s). Block took %s to download\n"), info->value.download.filename, (unsigned long long) info->value.download.completed, - (unsigned long long) info->value.download.size, s, t, s2); + (unsigned long long) info->value.download.size, + s, + t, + s2); GNUNET_free (s); GNUNET_free (t); } @@ -173,7 +177,8 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) if (0 != isatty (1)) fprintf (stdout, "\n"); #else - if (FILE_TYPE_CHAR == GetFileType (GetStdHandle (STD_OUTPUT_HANDLE))) + if (FILE_TYPE_CHAR == + GetFileType (GetStdHandle (STD_OUTPUT_HANDLE))) fprintf (stdout, "\n"); #endif FPRINTF (stderr, _("Error downloading: %s.\n"), @@ -188,10 +193,12 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) if (0 != isatty (1)) fprintf (stdout, "\n"); #else - if (FILE_TYPE_CHAR == GetFileType (GetStdHandle (STD_OUTPUT_HANDLE))) + if (FILE_TYPE_CHAR == + GetFileType (GetStdHandle (STD_OUTPUT_HANDLE))) fprintf (stdout, "\n"); #endif - FPRINTF (stdout, _("Downloading `%s' done (%s/s).\n"), + FPRINTF (stdout, + _("Downloading `%s' done (%s/s).\n"), info->value.download.filename, s); GNUNET_free (s); if (info->value.download.dc == dc) @@ -205,7 +212,9 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) case GNUNET_FS_STATUS_DOWNLOAD_INACTIVE: break; default: - FPRINTF (stderr, _("Unexpected status: %d\n"), info->status); + FPRINTF (stderr, + _("Unexpected status: %d\n"), + info->status); break; } return NULL; @@ -221,7 +230,9 @@ progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *info) * @param c configuration */ static void -run (void *cls, char *const *args, const char *cfgfile, +run (void *cls, + char *const *args, + const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *c) { struct GNUNET_FS_Uri *uri; @@ -230,41 +241,55 @@ run (void *cls, char *const *args, const char *cfgfile, if (NULL == args[0]) { - FPRINTF (stderr, "%s", _("You need to specify a URI argument.\n")); + FPRINTF (stderr, + "%s", + _("You need to specify a URI argument.\n")); return; } uri = GNUNET_FS_uri_parse (args[0], &emsg); if (NULL == uri) { - FPRINTF (stderr, _("Failed to parse URI: %s\n"), emsg); + FPRINTF (stderr, + _("Failed to parse URI: %s\n"), + emsg); GNUNET_free (emsg); ret = 1; return; } - if ((!GNUNET_FS_uri_test_chk (uri)) && (!GNUNET_FS_uri_test_loc (uri))) + if ( (! GNUNET_FS_uri_test_chk (uri)) && + (! GNUNET_FS_uri_test_loc (uri))) { - FPRINTF (stderr, "%s", _("Only CHK or LOC URIs supported.\n")); + FPRINTF (stderr, + "%s", + _("Only CHK or LOC URIs supported.\n")); ret = 1; GNUNET_FS_uri_destroy (uri); return; } if (NULL == filename) { - FPRINTF (stderr, "%s", _("Target filename must be specified.\n")); + FPRINTF (stderr, + "%s", + _("Target filename must be specified.\n")); ret = 1; GNUNET_FS_uri_destroy (uri); return; } cfg = c; - ctx = - GNUNET_FS_start (cfg, "gnunet-download", &progress_cb, NULL, - GNUNET_FS_FLAGS_NONE, - GNUNET_FS_OPTIONS_DOWNLOAD_PARALLELISM, parallelism, - GNUNET_FS_OPTIONS_REQUEST_PARALLELISM, - request_parallelism, GNUNET_FS_OPTIONS_END); + ctx = GNUNET_FS_start (cfg, + "gnunet-download", + &progress_cb, NULL, + GNUNET_FS_FLAGS_NONE, + GNUNET_FS_OPTIONS_DOWNLOAD_PARALLELISM, + parallelism, + GNUNET_FS_OPTIONS_REQUEST_PARALLELISM, + request_parallelism, + GNUNET_FS_OPTIONS_END); if (NULL == ctx) { - FPRINTF (stderr, _("Could not initialize `%s' subsystem.\n"), "FS"); + FPRINTF (stderr, + _("Could not initialize `%s' subsystem.\n"), + "FS"); GNUNET_FS_uri_destroy (uri); ret = 1; return; @@ -274,9 +299,17 @@ run (void *cls, char *const *args, const char *cfgfile, options |= GNUNET_FS_DOWNLOAD_OPTION_RECURSIVE; if (local_only) options |= GNUNET_FS_DOWNLOAD_OPTION_LOOPBACK_ONLY; - dc = GNUNET_FS_download_start (ctx, uri, NULL, filename, NULL, 0, + dc = GNUNET_FS_download_start (ctx, + uri, + NULL, + filename, + NULL, + 0, GNUNET_FS_uri_chk_get_file_size (uri), - anonymity, options, NULL, NULL); + anonymity, + options, + NULL, + NULL); GNUNET_FS_uri_destroy (uri); if (dc == NULL) { @@ -301,60 +334,58 @@ main (int argc, char *const *argv) { struct GNUNET_GETOPT_CommandLineOption options[] = { GNUNET_GETOPT_option_uint ('a', - "anonymity", - "LEVEL", - gettext_noop ("set the desired LEVEL of receiver-anonymity"), - &anonymity), + "anonymity", + "LEVEL", + gettext_noop ("set the desired LEVEL of receiver-anonymity"), + &anonymity), GNUNET_GETOPT_option_flag ('D', - "delete-incomplete", - gettext_noop ("delete incomplete downloads (when aborted with CTRL-C)"), - &delete_incomplete), + "delete-incomplete", + gettext_noop ("delete incomplete downloads (when aborted with CTRL-C)"), + &delete_incomplete), GNUNET_GETOPT_option_flag ('n', - "no-network", - gettext_noop ("only search the local peer (no P2P network search)"), - &local_only), - + "no-network", + gettext_noop ("only search the local peer (no P2P network search)"), + &local_only), GNUNET_GETOPT_option_string ('o', "output", "FILENAME", gettext_noop ("write the file to FILENAME"), &filename), - GNUNET_GETOPT_option_uint ('p', - "parallelism", - "DOWNLOADS", - gettext_noop ("set the maximum number of parallel downloads that is allowed"), - ¶llelism), - + "parallelism", + "DOWNLOADS", + gettext_noop ("set the maximum number of parallel downloads that is allowed"), + ¶llelism), GNUNET_GETOPT_option_uint ('r', - "request-parallelism", - "REQUESTS", - gettext_noop ("set the maximum number of parallel requests for blocks that is allowed"), - &request_parallelism), - + "request-parallelism", + "REQUESTS", + gettext_noop ("set the maximum number of parallel requests for blocks that is allowed"), + &request_parallelism), GNUNET_GETOPT_option_flag ('R', - "recursive", - gettext_noop ("download a GNUnet directory recursively"), - &do_recursive), - + "recursive", + gettext_noop ("download a GNUnet directory recursively"), + &do_recursive), GNUNET_GETOPT_option_increment_uint ('V', - "verbose", - gettext_noop ("be verbose (print progress information)"), - &verbose), - + "verbose", + gettext_noop ("be verbose (print progress information)"), + &verbose), GNUNET_GETOPT_OPTION_END }; - if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) + if (GNUNET_OK != + GNUNET_STRINGS_get_utf8_args (argc, argv, + &argc, &argv)) return 2; ret = (GNUNET_OK == - GNUNET_PROGRAM_run (argc, argv, "gnunet-download [OPTIONS] URI", + GNUNET_PROGRAM_run (argc, argv, + "gnunet-download [OPTIONS] URI", gettext_noop ("Download files from GNUnet using a GNUnet CHK or LOC URI (gnunet://fs/chk/...)"), - options, &run, NULL)) ? ret : 1; + options, + &run, NULL)) ? ret : 1; GNUNET_free ((void*) argv); return ret; } -- cgit v1.2.3