Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler.
Number of rules (primarily dangerous function names) in C/C++ ruleset: 223
Examining data/oregano-0.84.41+dfsg.1/src/load-common.h
Examining data/oregano-0.84.41+dfsg.1/src/oregano.h
Examining data/oregano-0.84.41+dfsg.1/src/dialogs.c
Examining data/oregano-0.84.41+dfsg.1/src/settings.c
Examining data/oregano-0.84.41+dfsg.1/src/clipboard.h
Examining data/oregano-0.84.41+dfsg.1/src/load-schematic.c
Examining data/oregano-0.84.41+dfsg.1/src/simulation.c
Examining data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c
Examining data/oregano-0.84.41+dfsg.1/src/oregano.c
Examining data/oregano-0.84.41+dfsg.1/src/load-library.h
Examining data/oregano-0.84.41+dfsg.1/src/errors.c
Examining data/oregano-0.84.41+dfsg.1/src/save-schematic.h
Examining data/oregano-0.84.41+dfsg.1/src/file-manager.c
Examining data/oregano-0.84.41+dfsg.1/src/tools/cancel-info.c
Examining data/oregano-0.84.41+dfsg.1/src/tools/cancel-info.h
Examining data/oregano-0.84.41+dfsg.1/src/tools/thread-pipe.c
Examining data/oregano-0.84.41+dfsg.1/src/tools/thread-pipe.h
Examining data/oregano-0.84.41+dfsg.1/src/schematic-view.h
Examining data/oregano-0.84.41+dfsg.1/src/netlist-editor.h
Examining data/oregano-0.84.41+dfsg.1/src/engines/ngspice.c
Examining data/oregano-0.84.41+dfsg.1/src/engines/engine-internal.h
Examining data/oregano-0.84.41+dfsg.1/src/engines/gnucap.h
Examining data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.h
Examining data/oregano-0.84.41+dfsg.1/src/engines/netlist-helper.c
Examining data/oregano-0.84.41+dfsg.1/src/engines/netlist-helper.h
Examining data/oregano-0.84.41+dfsg.1/src/engines/ngspice.h
Examining data/oregano-0.84.41+dfsg.1/src/engines/ngspice-watcher.c
Examining data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c
Examining data/oregano-0.84.41+dfsg.1/src/engines/ngspice-watcher.h
Examining data/oregano-0.84.41+dfsg.1/src/engines/engine.h
Examining data/oregano-0.84.41+dfsg.1/src/engines/engine.c
Examining data/oregano-0.84.41+dfsg.1/src/engines/gnucap.c
Examining data/oregano-0.84.41+dfsg.1/src/log-interface.h
Examining data/oregano-0.84.41+dfsg.1/src/sim-settings.c
Examining data/oregano-0.84.41+dfsg.1/src/xml-compat.h
Examining data/oregano-0.84.41+dfsg.1/src/settings.h
Examining data/oregano-0.84.41+dfsg.1/src/load-schematic.h
Examining data/oregano-0.84.41+dfsg.1/src/model/wire.h
Examining data/oregano-0.84.41+dfsg.1/src/model/schematic.c
Examining data/oregano-0.84.41+dfsg.1/src/model/schematic-print-context.h
Examining data/oregano-0.84.41+dfsg.1/src/model/item-data.h
Examining data/oregano-0.84.41+dfsg.1/src/model/wire.c
Examining data/oregano-0.84.41+dfsg.1/src/model/node.c
Examining data/oregano-0.84.41+dfsg.1/src/model/part.c
Examining data/oregano-0.84.41+dfsg.1/src/model/wire-private.h
Examining data/oregano-0.84.41+dfsg.1/src/model/node-store.c
Examining data/oregano-0.84.41+dfsg.1/src/model/part-property.h
Examining data/oregano-0.84.41+dfsg.1/src/model/textbox.h
Examining data/oregano-0.84.41+dfsg.1/src/model/schematic.h
Examining data/oregano-0.84.41+dfsg.1/src/model/part-private.h
Examining data/oregano-0.84.41+dfsg.1/src/model/node-store.h
Examining data/oregano-0.84.41+dfsg.1/src/model/part-label.h
Examining data/oregano-0.84.41+dfsg.1/src/model/textbox.c
Examining data/oregano-0.84.41+dfsg.1/src/model/part.h
Examining data/oregano-0.84.41+dfsg.1/src/model/node-store-private.h
Examining data/oregano-0.84.41+dfsg.1/src/model/part-property.c
Examining data/oregano-0.84.41+dfsg.1/src/model/node.h
Examining data/oregano-0.84.41+dfsg.1/src/model/item-data.c
Examining data/oregano-0.84.41+dfsg.1/src/simulation.h
Examining data/oregano-0.84.41+dfsg.1/src/options.c
Examining data/oregano-0.84.41+dfsg.1/src/splash.h
Examining data/oregano-0.84.41+dfsg.1/src/main.c
Examining data/oregano-0.84.41+dfsg.1/src/oregano-config.h
Examining data/oregano-0.84.41+dfsg.1/src/errors.h
Examining data/oregano-0.84.41+dfsg.1/src/log.c
Examining data/oregano-0.84.41+dfsg.1/src/options.h
Examining data/oregano-0.84.41+dfsg.1/src/dialogs.h
Examining data/oregano-0.84.41+dfsg.1/src/file.h
Examining data/oregano-0.84.41+dfsg.1/src/debug.h
Examining data/oregano-0.84.41+dfsg.1/src/oregano-utils.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/create-wire.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/rubberband.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/plot-add-function.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/part-item.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/sheet-private.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/textbox-item.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/sheet-item.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/textbox-item.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/sheet-item-factory.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/sheet.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/grid.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/sheet-item.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/node-item.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/plot-add-function.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/rubberband.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/part-item.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/sheet-item-factory.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/sheet.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/wire-item.c
Examining data/oregano-0.84.41+dfsg.1/src/sheet/wire-item.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/grid.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/node-item.h
Examining data/oregano-0.84.41+dfsg.1/src/sheet/create-wire.h
Examining data/oregano-0.84.41+dfsg.1/src/plot.c
Examining data/oregano-0.84.41+dfsg.1/src/coords.h
Examining data/oregano-0.84.41+dfsg.1/src/stock.h
Examining data/oregano-0.84.41+dfsg.1/src/save-schematic.c
Examining data/oregano-0.84.41+dfsg.1/src/clipboard.c
Examining data/oregano-0.84.41+dfsg.1/src/coords.c
Examining data/oregano-0.84.41+dfsg.1/src/splash.c
Examining data/oregano-0.84.41+dfsg.1/src/gplot/gplotlines.h
Examining data/oregano-0.84.41+dfsg.1/src/gplot/gplotlines.c
Examining data/oregano-0.84.41+dfsg.1/src/gplot/gplotfunction.c
Examining data/oregano-0.84.41+dfsg.1/src/gplot/gplot-internal.h
Examining data/oregano-0.84.41+dfsg.1/src/gplot/gplot.h
Examining data/oregano-0.84.41+dfsg.1/src/gplot/gplot.c
Examining data/oregano-0.84.41+dfsg.1/src/gplot/gplotfunction.h
Examining data/oregano-0.84.41+dfsg.1/src/part-browser.c
Examining data/oregano-0.84.41+dfsg.1/src/log-view.c
Examining data/oregano-0.84.41+dfsg.1/src/part-browser.h
Examining data/oregano-0.84.41+dfsg.1/src/schematic-view-menu.h
Examining data/oregano-0.84.41+dfsg.1/src/oregano-utils.h
Examining data/oregano-0.84.41+dfsg.1/src/cursors.c
Examining data/oregano-0.84.41+dfsg.1/src/cursors.h
Examining data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.h
Examining data/oregano-0.84.41+dfsg.1/src/oregano-config.c
Examining data/oregano-0.84.41+dfsg.1/src/stock.c
Examining data/oregano-0.84.41+dfsg.1/src/plot.h
Examining data/oregano-0.84.41+dfsg.1/src/xml-helper.c
Examining data/oregano-0.84.41+dfsg.1/src/load-library.c
Examining data/oregano-0.84.41+dfsg.1/src/log.h
Examining data/oregano-0.84.41+dfsg.1/src/xml-helper.h
Examining data/oregano-0.84.41+dfsg.1/src/sim-settings.h
Examining data/oregano-0.84.41+dfsg.1/src/log-view.h
Examining data/oregano-0.84.41+dfsg.1/src/file-manager.h
Examining data/oregano-0.84.41+dfsg.1/src/file.c
Examining data/oregano-0.84.41+dfsg.1/src/netlist-editor.c
Examining data/oregano-0.84.41+dfsg.1/src/schematic-view.c
Examining data/oregano-0.84.41+dfsg.1/test/test_wire.c
Examining data/oregano-0.84.41+dfsg.1/test/test_engine.c
Examining data/oregano-0.84.41+dfsg.1/test/test.c
Examining data/oregano-0.84.41+dfsg.1/test/helper.c
Examining data/oregano-0.84.41+dfsg.1/test/test_nodestore.c
Examining data/oregano-0.84.41+dfsg.1/test/test_update_connection_designators.c
Examining data/oregano-0.84.41+dfsg.1/test/test_engine_ngspice.c
Examining data/oregano-0.84.41+dfsg.1/test/test_thread_pipe.c

FINAL RESULTS:

data/oregano-0.84.41+dfsg.1/src/load-library.c:514:3:  [4] (buffer) sscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
		sscanf (state->content->str, "(%d %d)%s", &state->object->u.text.x,
data/oregano-0.84.41+dfsg.1/src/oregano-config.c:105:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
				sprintf (txt, _ ("Loading %s ..."), libentry->d_name);
data/oregano-0.84.41+dfsg.1/src/sheet/wire-item.c:221:46:  [3] (random) g_random_int_range:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
	                             ? random_color[g_random_int_range (0, random_color_count - 1)]
data/oregano-0.84.41+dfsg.1/src/sheet/wire-item.c:230:25:  [3] (random) g_random_int_range:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
	        ? random_color[g_random_int_range (0, random_color_count - 1)]
data/oregano-0.84.41+dfsg.1/src/sheet/wire-item.c:244:25:  [3] (random) g_random_int_range:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
	        ? random_color[g_random_int_range (0, random_color_count - 1)]
data/oregano-0.84.41+dfsg.1/src/engines/gnucap.c:200:9:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
	file = fopen (filename, "w");
data/oregano-0.84.41+dfsg.1/src/engines/gnucap.c:561:9:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
	static char buf[1024];
data/oregano-0.84.41+dfsg.1/src/engines/netlist-helper.c:471:24:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					pins[0].node_nr = atoi (node2real[node_nr]);
data/oregano-0.84.41+dfsg.1/src/engines/netlist-helper.c:529:29:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					pins[pin_nr].node_nr = atoi (node2real[node_nr]);
data/oregano-0.84.41+dfsg.1/src/engines/netlist-helper.c:702:36:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		text = g_strdup_printf ("V(%d)", atoi (slist->data));
data/oregano-0.84.41+dfsg.1/src/engines/netlist-helper.c:705:46:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			text = g_strdup_printf ("%s V(%d)", text, atoi (slist->data));
data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c:110:2:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	memcpy (out, tmp, sizeof(gchar *) * i);
data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c:194:11:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		index = atoi (variables[0]);
data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c:300:11:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		index = atoi (variables[0]);
data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c:938:11:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		index = atoi (variables[0]);
data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c:978:15:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
	FILE *file = fopen(path_to_file, "w");
data/oregano-0.84.41+dfsg.1/src/model/part.c:495:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy (priv->pins, priv->pins_orig, sizeof(Pin) * num_pins);
data/oregano-0.84.41+dfsg.1/src/model/part.c:772:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy (dest_part->priv->pins, src_part->priv->pins, src_part->priv->num_pins * sizeof(Pin));
data/oregano-0.84.41+dfsg.1/src/model/part.c:777:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy (dest_part->priv->pins_orig, src_part->priv->pins_orig, src_part->priv->num_pins * sizeof(Pin));
data/oregano-0.84.41+dfsg.1/src/netlist-editor.c:136:8:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
		fp = fopen (name, "wt");
data/oregano-0.84.41+dfsg.1/src/oregano-config.c:104:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
				char txt[50];
data/oregano-0.84.41+dfsg.1/src/sheet/textbox-item.c:317:2:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	memcpy (p1, &priv->bbox_start, sizeof(Coords));
data/oregano-0.84.41+dfsg.1/src/sheet/textbox-item.c:318:2:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	memcpy (p2, &priv->bbox_end, sizeof(Coords));
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:338:9:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				if (atoi (tmp->data) == i - 1) {
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:355:28:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			if (node_slist->data && atoi (node_slist->data) > 0)
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:356:38:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				text = g_strdup_printf ("V(%d)", atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:360:28:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			if (node_slist->data && atoi (node_slist->data) > 0) {
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:362:48:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					text = g_strdup_printf ("%s V(%d)", text, atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:364:39:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					text = g_strdup_printf ("V(%d)", atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:596:36:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			tmp = g_strdup_printf ("V(%d)", atoi (siter->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:626:33:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		tmp = g_strdup_printf ("V%d", atoi (siter->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:1031:22:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		if (slist->data && atoi (slist->data) > 0)
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:1032:37:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			text = g_strdup_printf ("V(%d)", atoi (slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:1036:22:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		if (slist->data && atoi (slist->data) > 0) {
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:1039:47:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				text = g_strdup_printf ("%s V(%d)", text, atoi (slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings-gui.c:1042:38:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				text = g_strdup_printf ("V(%d)", atoi (slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:157:27:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		if ((node_index - 1) == atoi (node_slist->data)) {
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:177:28:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			if (node_slist->data && atoi (node_slist->data) > 0)
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:178:41:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				ret_val = g_strdup_printf ("V(%d)", atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:182:28:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			if (node_slist->data && atoi (node_slist->data) > 0) {
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:185:54:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					ret_val = g_strdup_printf ("%s V(%d)", ret_val, atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:188:42:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					ret_val = g_strdup_printf ("V(%d)", atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:200:23:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			if (node_ids[i] && atoi (node_ids[i]) > 0) {
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:203:54:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					ret_val = g_strdup_printf ("%s V(%d)", ret_val, atoi (node_ids[i]));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:206:42:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
					ret_val = g_strdup_printf ("V(%d)", atoi (node_ids[i]));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:307:9:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	return atoi (sim_settings->ac_npoints);
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:462:27:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		if (node_slist->data && atoi (node_slist->data) > 0)
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:463:34:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			text = g_strdup_printf ("%d", atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:467:27:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		if (node_slist->data && atoi (node_slist->data) > 0) {
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:470:44:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				text = g_strdup_printf ("%s %d", text, atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:473:35:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				text = g_strdup_printf ("%d", atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:498:27:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		if (node_slist->data && atoi (node_slist->data) > 0)
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:499:37:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
			text = g_strdup_printf ("V(%d)", atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:503:27:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
		if (node_slist->data && atoi (node_slist->data) > 0) {
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:506:47:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				text = g_strdup_printf ("%s V(%d)", text, atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:509:38:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
				text = g_strdup_printf ("V(%d)", atoi (node_slist->data));
data/oregano-0.84.41+dfsg.1/src/sim-settings.c:535:9:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
	return atoi (sim_settings->noise_npoints);
data/oregano-0.84.41+dfsg.1/src/tools/thread-pipe.c:561:3:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
		memcpy(pipe_data->malloc_address, data, size);
data/oregano-0.84.41+dfsg.1/src/xml-helper.c:158:2:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
	char str[101];
data/oregano-0.84.41+dfsg.1/src/xml-helper.c:183:2:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
	char str[101];
data/oregano-0.84.41+dfsg.1/src/engines/gnucap.c:222:8:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (strlen (so->value) > 0) {
data/oregano-0.84.41+dfsg.1/src/engines/netlist-helper.c:335:8:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (strlen (split[i]) > 1) {
data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c:51:55:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
#define IS_THIS_ITEM(str, item) (!strncmp (str, item, strlen (item)))
data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c:186:7:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		if (strlen (*buf) <= 2) {
data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c:290:7:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		if (strlen (*buf) <= 2) {
data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c:928:7:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		if (strlen (*buf) <= 2) {
data/oregano-0.84.41+dfsg.1/src/engines/ngspice-analysis.c:956:8:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (strlen (*buf) < 2)
data/oregano-0.84.41+dfsg.1/src/engines/ngspice.c:200:8:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
			if (strlen (so->value) > 0) {
data/oregano-0.84.41+dfsg.1/src/file.c:70:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		if (name[strlen (name) - 1] == '/') {
data/oregano-0.84.41+dfsg.1/src/file.c:111:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		if (name[strlen (name) - 1] != '/') {
data/oregano-0.84.41+dfsg.1/src/file.c:157:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		if (name[strlen (name) - 1] == '/') {
data/oregano-0.84.41+dfsg.1/src/file.c:186:12:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		if (name[strlen (name) - 1] == '/') {
data/oregano-0.84.41+dfsg.1/src/log.c:73:52:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		if (previous_message != NULL && previous_message[strlen(previous_message) - 1] != '\r')
data/oregano-0.84.41+dfsg.1/src/model/part-property.c:56:8:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	sln = strlen (str) + 1;
data/oregano-0.84.41+dfsg.1/src/model/part-property.c:113:36:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	*sz = out->len + (*cls1 != NULL ? strlen(*cls1) + 2 : 0) + (*cls2 != NULL ? strlen(*cls2) + 2 : 0);
data/oregano-0.84.41+dfsg.1/src/model/part-property.c:113:78:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	*sz = out->len + (*cls1 != NULL ? strlen(*cls1) + 2 : 0) + (*cls2 != NULL ? strlen(*cls2) + 2 : 0);
data/oregano-0.84.41+dfsg.1/src/model/part-property.c:271:11:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		temp += strlen(prop_split[0]);
data/oregano-0.84.41+dfsg.1/src/model/part-property.c:280:13:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				temp += strlen(prop_split[0]);
data/oregano-0.84.41+dfsg.1/src/model/part-property.c:288:13:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				temp += strlen(prop_split[0]);
data/oregano-0.84.41+dfsg.1/src/model/part-property.c:299:13:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				temp += strlen(prop_split[0]);
data/oregano-0.84.41+dfsg.1/src/model/part-property.c:323:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					temp += strlen(prop_split[i]);
data/oregano-0.84.41+dfsg.1/src/model/part-property.c:354:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
					temp += strlen(prop_split[i]);
data/oregano-0.84.41+dfsg.1/src/model/part.c:945:11:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	length = strlen (refdes);
data/oregano-0.84.41+dfsg.1/src/model/schematic.c:515:67:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	gtk_text_buffer_insert_at_cursor (schematic->priv->log, message, strlen (message));
data/oregano-0.84.41+dfsg.1/src/oregano-utils.c:50:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		unit_length = strlen (unit);
data/oregano-0.84.41+dfsg.1/src/part-browser.c:132:20:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		br->filter_len = strlen (s);
data/oregano-0.84.41+dfsg.1/src/schematic-view.c:214:49:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		gtk_text_buffer_set_text (buffer, s_comments, strlen (s_comments));
data/oregano-0.84.41+dfsg.1/src/schematic-view.c:1563:13:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
				int l = strlen (files[i]);
data/oregano-0.84.41+dfsg.1/src/sheet/part-item.c:402:27:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
						prop_value_length = strlen (prop_value);
data/oregano-0.84.41+dfsg.1/test/test_thread_pipe.c:339:21:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
		(*walker)->size = strlen(str[i]) + 1;

ANALYSIS SUMMARY:

Hits = 90
Lines analyzed = 34029 in approximately 0.85 seconds (40214 lines/second)
Physical Source Lines of Code (SLOC) = 22476
Hits@level = [0]  18 [1]  30 [2]  55 [3]   3 [4]   2 [5]   0
Hits@level+ = [0+] 108 [1+]  90 [2+]  60 [3+]   5 [4+]   2 [5+]   0
Hits/KSLOC@level+ = [0+] 4.80513 [1+] 4.00427 [2+] 2.66951 [3+] 0.22246 [4+] 0.0889838 [5+]   0
Dot directories skipped = 2 (--followdotdir overrides)
Minimum risk level = 1
Not every hit is necessarily a security vulnerability.
There may be other security vulnerabilities; review your code!
See 'Secure Programming HOWTO'
(https://dwheeler.com/secure-programs) for more information.