Software Bug Adds 5K Votes To Election
eldavojohn writes "You may be able to argue that a five-thousand-vote error is a small price to pay for a national election, but these errors are certainly inadmissible on a much smaller scale. According to the Rapid City Journal, a software glitch added 4,875 phantom ballots in a South Dakota election for a seat on the city council. It's not a hardware security problem this time; it's a software glitch. Although not unheard of in electronic voting, this bug was about to cause a runoff vote since the incumbent did not hold a high enough percentage of the vote. That is no longer the case after the numbers were corrected. Wired notes it's probably a complex bug as it is not just multiplying the vote count by two. Here's to hoping that AutoMark follows suit and releases the source code for others to scrutinize."
The software has achieved sentience and is trying to elect its robot overlords! Before anyone else... I for one welcome our democratically elected robot overlords.
It's not a bug, it's a feature.
Wired thinks it's "probably a complex bug"? I think probably not, it's probably something blindingly simple, and stupid.
They were right - the revolution did not get televised. It was posted on YouTube instead. All in 120 characters. SLOOSH!
Ah, "Shaky" Jim was off his meds again.
Additions just aren't so simple anymore in concurrent computing. The obvious way to do addition in gcc c would be:
totalVotes[candidate]++;
but this will totally screw up the vote count, whereas
__sync_add_and_fetch(&totalVotes[candidate], 1);
gets it right.
vote = GetVote( );
/s
if( vote = my_candidate )
{
my_candidate_votes = my_candidate_votes + 2;
} else {
other_candidate_votes = other_candidate_votes + 1;
}
In the source code as complex as this, you will probably need a PhD in computer science...
void vote(int candidate)
{
switch (candidate)
{
case GEORGE_BUSH:
totalVotes[GEORGE_BUSH] ++;
case AL_GORE:
totalVotes[AL_GORE] ++;
break;
}
}
Someone forgot to clear the chad bit!
"The only legitimate use of a computer is to play games." - Eugene Jarvis
Was there a double B, double G, double L?
Yes, but it's hilarious when there were only 5600 actual votes cast. +/-100% error bars, is good enough for government work apparently.
Real life appears to disagree with you! :D
eh...your first case statement is missing a break. As it currently stands, a vote for GEORGE_BUSH also adds a vote for AL_GORE. I dunno maybe you left it out on purpose to make a point? I guess the bigger question is: why do I care? The answer of course is because I have no friends.
Can't these idiots get anything right? This is so freaking easy to fix it boggles the mind.... votes = votes - 5000 ; There. Done.
A software error resulting in +/- 5000 votes cast is unacceptable on any level, even if it gets drowned out on the national level in the US.
You know, some people are always complaining. First you complain that there's not enough people turning out to vote each election, that people are apathetic, etc. Finally someone develops some software that fixes that problem and now everyone complains about that!!
The real issue isn't that the votes were miscounted in South Dakota.
It's that I bought them for South Carolina!
I think you meant to have Gore first, then Bush...
from 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
to 45 2F 6E 40 3C DF 10 71 4E 41 DF AA 25 7D 31 3F
The only issue with HDDVD encryption was keeping 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 secret. Oh, crap. There it is.
Because when a computer has to count 10000 votes (assuming each machine counts and then sends the total) it would just put too much pressure on a single thread. Isn't it obvious?