Dwarves Archive on lore.kernel.org
 help / color / Atom feed
* 16-bit id's in cu_for_each loops cause infinite loops with large libraries
@ 2016-07-18 18:13 David Beaulieu
  0 siblings, 0 replies; only message in thread
From: David Beaulieu @ 2016-07-18 18:13 UTC (permalink / raw)
  To: dwarves-u79uwXL29TY76Z2rM5mHXA

Hello,

I'm new to pahole (great tool!)... I downloaded the latest git source 
(b52386d041fac2dc6decf3a9e8e85385784a2de9) and tried to run it against a 
large library from my project. It got caught in an infinite loop in 
cu__find_base_type_by_sname_and_size() in the call to cu__for_each_type(). 
The reason was the uint16_t id was not big enough... it wraps around and 
is always less than cu->types_table.nr_entries. I changed it (and other 
instances of it in dwarves.c) to uint32_t, and that seems to have fixed 
the issue, but I don't know if there are any other side effects.

Anyway, hope this helps!

--
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, back to index

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-18 18:13 16-bit id's in cu_for_each loops cause infinite loops with large libraries David Beaulieu

Dwarves Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/dwarves/0 dwarves/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dwarves dwarves/ https://lore.kernel.org/dwarves \
		dwarves@vger.kernel.org
	public-inbox-index dwarves

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.dwarves


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git