Shadowing of global variables, especially if it's intentional and/or as
wide-spread in a codebase as it is in virt-p2v, is very harmful. Eliminate
it by renaming a number of function parameters, appending a "_p" suffix.

(The shadowing of "v2v_version" interfered with the analysis of the crash
that I originally meant to fix today. The fix is now the last patch in the
series.)

Signed-off-by: Laszlo Ersek <ler...@redhat.com>
---
 gui.c  | 48 ++++++++++----------
 main.c | 11 +++--
 ssh.c  | 14 +++---
 3 files changed, 38 insertions(+), 35 deletions(-)

diff --git a/gui.c b/gui.c
index 0e90235f7dfe..4b98a44fbbe9 100644
--- a/gui.c
+++ b/gui.c
@@ -680,12 +680,14 @@ connection_next_clicked (GtkWidget *w, gpointer data)
 /*----------------------------------------------------------------------*/
 /* Conversion dialog. */
 
-static void populate_disks (GtkTreeView *disks_list);
-static void populate_removable (GtkTreeView *removable_list);
-static void populate_interfaces (GtkTreeView *interfaces_list);
+static void populate_disks (GtkTreeView *disks_list_p);
+static void populate_removable (GtkTreeView *removable_list_p);
+static void populate_interfaces (GtkTreeView *interfaces_list_p);
 static void toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer 
data);
 static void network_edited_callback (GtkCellRendererToggle *cell, gchar 
*path_str, gchar *new_text, gpointer data);
-static gboolean maybe_identify_click (GtkWidget *interfaces_list, 
GdkEventButton *event, gpointer data);
+static gboolean maybe_identify_click (GtkWidget *interfaces_list_p,
+                                      GdkEventButton *event,
+                                      gpointer data);
 static void set_disks_from_ui (struct config *);
 static void set_removable_from_ui (struct config *);
 static void set_interfaces_from_ui (struct config *);
@@ -1093,7 +1095,7 @@ repopulate_output_combo (struct config *config)
  * Populate the C<Fixed hard disks> treeview.
  */
 static void
-populate_disks (GtkTreeView *disks_list)
+populate_disks (GtkTreeView *disks_list_p)
 {
   GtkListStore *disks_store;
   GtkCellRenderer *disks_col_convert, *disks_col_device;
@@ -1136,11 +1138,11 @@ populate_disks (GtkTreeView *disks_list)
                           -1);
     }
   }
-  gtk_tree_view_set_model (disks_list,
+  gtk_tree_view_set_model (disks_list_p,
                            GTK_TREE_MODEL (disks_store));
-  gtk_tree_view_set_headers_visible (disks_list, TRUE);
+  gtk_tree_view_set_headers_visible (disks_list_p, TRUE);
   disks_col_convert = gtk_cell_renderer_toggle_new ();
-  gtk_tree_view_insert_column_with_attributes (disks_list,
+  gtk_tree_view_insert_column_with_attributes (disks_list_p,
                                                -1,
                                                _("Convert"),
                                                disks_col_convert,
@@ -1148,7 +1150,7 @@ populate_disks (GtkTreeView *disks_list)
                                                NULL);
   gtk_cell_renderer_set_alignment (disks_col_convert, 0.5, 0.0);
   disks_col_device = gtk_cell_renderer_text_new ();
-  gtk_tree_view_insert_column_with_attributes (disks_list,
+  gtk_tree_view_insert_column_with_attributes (disks_list_p,
                                                -1,
                                                _("Device"),
                                                disks_col_device,
@@ -1164,7 +1166,7 @@ populate_disks (GtkTreeView *disks_list)
  * Populate the C<Removable media> treeview.
  */
 static void
-populate_removable (GtkTreeView *removable_list)
+populate_removable (GtkTreeView *removable_list_p)
 {
   GtkListStore *removable_store;
   GtkCellRenderer *removable_col_convert, *removable_col_device;
@@ -1187,11 +1189,11 @@ populate_removable (GtkTreeView *removable_list)
                           -1);
     }
   }
-  gtk_tree_view_set_model (removable_list,
+  gtk_tree_view_set_model (removable_list_p,
                            GTK_TREE_MODEL (removable_store));
-  gtk_tree_view_set_headers_visible (removable_list, TRUE);
+  gtk_tree_view_set_headers_visible (removable_list_p, TRUE);
   removable_col_convert = gtk_cell_renderer_toggle_new ();
-  gtk_tree_view_insert_column_with_attributes (removable_list,
+  gtk_tree_view_insert_column_with_attributes (removable_list_p,
                                                -1,
                                                _("Convert"),
                                                removable_col_convert,
@@ -1199,7 +1201,7 @@ populate_removable (GtkTreeView *removable_list)
                                                NULL);
   gtk_cell_renderer_set_alignment (removable_col_convert, 0.5, 0.0);
   removable_col_device = gtk_cell_renderer_text_new ();
-  gtk_tree_view_insert_column_with_attributes (removable_list,
+  gtk_tree_view_insert_column_with_attributes (removable_list_p,
                                                -1,
                                                _("Device"),
                                                removable_col_device,
@@ -1215,7 +1217,7 @@ populate_removable (GtkTreeView *removable_list)
  * Populate the C<Network interfaces> treeview.
  */
 static void
-populate_interfaces (GtkTreeView *interfaces_list)
+populate_interfaces (GtkTreeView *interfaces_list_p)
 {
   GtkListStore *interfaces_store;
   GtkCellRenderer *interfaces_col_convert, *interfaces_col_device,
@@ -1257,11 +1259,11 @@ populate_interfaces (GtkTreeView *interfaces_list)
                           -1);
     }
   }
-  gtk_tree_view_set_model (interfaces_list,
+  gtk_tree_view_set_model (interfaces_list_p,
                            GTK_TREE_MODEL (interfaces_store));
-  gtk_tree_view_set_headers_visible (interfaces_list, TRUE);
+  gtk_tree_view_set_headers_visible (interfaces_list_p, TRUE);
   interfaces_col_convert = gtk_cell_renderer_toggle_new ();
-  gtk_tree_view_insert_column_with_attributes (interfaces_list,
+  gtk_tree_view_insert_column_with_attributes (interfaces_list_p,
                                                -1,
                                                _("Convert"),
                                                interfaces_col_convert,
@@ -1269,7 +1271,7 @@ populate_interfaces (GtkTreeView *interfaces_list)
                                                NULL);
   gtk_cell_renderer_set_alignment (interfaces_col_convert, 0.5, 0.0);
   interfaces_col_device = gtk_cell_renderer_text_new ();
-  gtk_tree_view_insert_column_with_attributes (interfaces_list,
+  gtk_tree_view_insert_column_with_attributes (interfaces_list_p,
                                                -1,
                                                _("Device"),
                                                interfaces_col_device,
@@ -1277,7 +1279,7 @@ populate_interfaces (GtkTreeView *interfaces_list)
                                                NULL);
   gtk_cell_renderer_set_alignment (interfaces_col_device, 0.0, 0.0);
   interfaces_col_network = gtk_cell_renderer_text_new ();
-  gtk_tree_view_insert_column_with_attributes (interfaces_list,
+  gtk_tree_view_insert_column_with_attributes (interfaces_list_p,
                                                -1,
                                                _("Connect to virtual network"),
                                                interfaces_col_network,
@@ -1337,7 +1339,7 @@ network_edited_callback (GtkCellRendererToggle *cell, 
gchar *path_str,
  * L<https://en.wikibooks.org/wiki/GTK%2B_By_Example/Tree_View/Events>
  */
 static gboolean
-maybe_identify_click (GtkWidget *interfaces_list, GdkEventButton *event,
+maybe_identify_click (GtkWidget *interfaces_list_p, GdkEventButton *event,
                       gpointer data)
 {
   gboolean ret = FALSE;         /* Did we handle this event? */
@@ -1352,14 +1354,14 @@ maybe_identify_click (GtkWidget *interfaces_list, 
GdkEventButton *event,
     gdouble event_x, event_y;
 
     if (gdk_event_get_coords ((const GdkEvent *) event, &event_x, &event_y)
-        && gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (interfaces_list),
+        && gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (interfaces_list_p),
                                           event_x, event_y,
                                           &path, &column, NULL, NULL)) {
       GList *cols;
       gint column_index;
 
       /* Get column index. */
-      cols = gtk_tree_view_get_columns (GTK_TREE_VIEW (interfaces_list));
+      cols = gtk_tree_view_get_columns (GTK_TREE_VIEW (interfaces_list_p));
       column_index = g_list_index (cols, (gpointer) column);
       g_list_free (cols);
 
diff --git a/main.c b/main.c
index 6c44183b65b3..8a93f9eb402b 100644
--- a/main.c
+++ b/main.c
@@ -121,12 +121,13 @@ display_short_options (const char *format)
 }
 
 static void
-display_long_options (const struct option *long_options)
+display_long_options (const struct option *long_options_p)
 {
-  while (long_options->name) {
-    if (STRNEQ (long_options->name, "long-options") && STRNEQ 
(long_options->name, "short-options"))
-      printf ("--%s\n", long_options->name);
-    long_options++;
+  while (long_options_p->name) {
+    if (STRNEQ (long_options_p->name, "long-options") &&
+        STRNEQ (long_options_p->name, "short-options"))
+      printf ("--%s\n", long_options_p->name);
+    long_options_p++;
   }
   exit (EXIT_SUCCESS);
 }
diff --git a/ssh.c b/ssh.c
index 3b3e441b84ac..059f0e224cba 100644
--- a/ssh.c
+++ b/ssh.c
@@ -743,7 +743,7 @@ scp_file (struct config *config, const char *target, const 
char *local, ...)
 
 static void add_input_driver (const char *name);
 static void add_output_driver (const char *name);
-static int compatible_version (const char *v2v_version);
+static int compatible_version (const char *v2v_version_p);
 
 #if defined(__GNUC__) && !defined(__clang__)
 #pragma GCC diagnostic ignored "-Wsuggest-attribute=noreturn" /* WTF? */
@@ -1018,15 +1018,15 @@ add_output_driver (const char *name)
 }
 
 static int
-compatible_version (const char *v2v_version)
+compatible_version (const char *v2v_version_p)
 {
   unsigned v2v_major, v2v_minor;
 
   /* The major version must always be 1 or 2. */
-  if (!STRPREFIX (v2v_version, "1.") && !STRPREFIX (v2v_version, "2.")) {
+  if (!STRPREFIX (v2v_version_p, "1.") && !STRPREFIX (v2v_version_p, "2.")) {
     set_ssh_error ("virt-v2v major version is neither 1 nor 2 (\"%s\"), "
                    "this version of virt-p2v is not compatible.",
-                   v2v_version);
+                   v2v_version_p);
     return 0;
   }
 
@@ -1035,16 +1035,16 @@ compatible_version (const char *v2v_version)
    * that we published during development, nor (b) using old virt-v2v.
    * We should remain compatible with any virt-v2v after 1.28.
    */
-  if (sscanf (v2v_version, "%u.%u", &v2v_major, &v2v_minor) != 2) {
+  if (sscanf (v2v_version_p, "%u.%u", &v2v_major, &v2v_minor) != 2) {
     set_ssh_internal_error ("cannot parse virt-v2v version string (\"%s\")",
-                            v2v_version);
+                            v2v_version_p);
     return 0;
   }
 
   if (v2v_major == 1 && v2v_minor < 28) {
     set_ssh_error ("virt-v2v version is < 1.28 (\"%s\"), "
                    "you must upgrade to virt-v2v >= 1.28 on "
-                   "the conversion server.", v2v_version);
+                   "the conversion server.", v2v_version_p);
     return 0;
   }
 

_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to