Slash Boxes

SoylentNews is people

posted by Dopefish on Tuesday February 18 2014, @05:00AM   Printer-friendly
from the move-along-nothing-to-see-here dept.

Lagg writes:

"We're in a climate where it's easy to accuse a company of spying on you by various means with a distinct possibility that you could be right, but sometimes a reality check is needed. A Reddit user recently posted a thread accusing Valve of writing code for VAC that iterates your DNS cache and sends the hashed entries to their server. The proof provided of this was a prettied disassembly (that was not easily reproducible due to how VAC loads symbols) that showed only that VAC was indeed iterating the DNS cache, which any knowledgeable programmer understands is not exactly an uncommon thing to do, as no socket code was to be seen. Today, Gabe Newell responded to these allegations by confirming that no they do not in fact snoop your cache entries.

There are probably a few things to learn from this, including not trusting a screenshot of code that looks complex without actually understanding what it's doing. A lack of any level-headed investigation is a bad idea and it's important to handle these situations before they snowball into a mob (as Redditors are bound to do)."

This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 1, Insightful) by Anonymous Coward on Tuesday February 18 2014, @03:35PM

    by Anonymous Coward on Tuesday February 18 2014, @03:35PM (#1654)

    "VAC was indeed iterating the DNS cache, which any knowledgeable programmer understands is not exactly an uncommon thing to do,"

    I'm a knowledgeable programmer but I never deal with games or DNS (believe it or not!). The programming domain might be larger than you realize. Why is this not an uncommon thing to do? Thanks.

    Starting Score:    0  points
    Moderation   +1  
       Insightful=1, Total=1
    Extra 'Insightful' Modifier   0  

    Total Score:   1  
  • (Score: 1) by Lagg on Tuesday February 18 2014, @03:42PM

    by Lagg (105) on Tuesday February 18 2014, @03:42PM (#1657) Homepage Journal
    Sorry for that. I should have explained. It's a micro-optimization sometimes used when the code needs to do a lot of resolves to a small set of names. I'm not going to vouch for the usefulness of it, but it is done. Particularly in environments where the overhead of repeated resolve calls is not wanted or needed, like in embedded stuff. I guess bypassing the resolver entirely can help to a degree in those situations, but it's not needed much in today's systems in my opinion. It all comes down to whether or not you think that the overhead of your given resolver lib is worth working around after the initial query to the nameserver. Basically, you implement such a thing when you think you can do the caching better. When I first saw this thread I didn't think it too out of the ordinary since goldsrc was based on quake's engine and there could very well be such code leftover that is shared with other stuff. Since iD loved to do these kind-of-silly-even-for-the-time micro-optimizations it kind of made sense. If you've worked with net code before you've probably heard of this more than you think.
    -- [] 🗿
  • (Score: 1) by paddym on Tuesday February 18 2014, @03:55PM

    by paddym (196) on Tuesday February 18 2014, @03:55PM (#1667)

    The only thing I can think of is that when dealing with DNS for looking up IP address information, it is definitely faster to find that in the cache than elsewhere. So iterating through the cache may happen; although I would tend to think that calls to the operating system's gethostbyname would do that iteration for the programmer. That would make it very common, but examining each entry is not common, to my knowledge. I don't see why a program would iterate through the cache looking at entries that have nothing to do with the context of the program, unless it's security software.