News for hackers. Stuff that matters.
Re:Clinkle gets hacked before it even launches by minimaxir on Thursday January 30, 2014 @06:31PM (#7154137)
According to the Pastebin dump, one user has a user_id = 0

Why would you even design an application to allow that? Even if the user was deleted (as potentially indicated by a null phone number), it's still a conflict.

Re:Clinkle gets hacked before it even launches by ronaldx on Thursday January 30, 2014 @07:14PM (#7154342)
Why do you allow an array index to start at 0?

Although I agree that this is not ideal, zero is not null.

Re:Clinkle gets hacked before it even launches by X-Istence on Thursday January 30, 2014 @07:14PM (#7154346)
Why wouldn't you want a user_id being 0?
Re:Clinkle gets hacked before it even launches by GregorStocks on Thursday January 30, 2014 @09:48PM (#7154930)
When possible, you should avoid having any userid that could be mistaken for a non-userid number - it prevents a lot of silly programming errors from going unnoticed or turning into bigger problems, and has very little downside. http://www.phabricator.com/docs/phabricator/article/Things_Y...
Re:Clinkle gets hacked before it even launches by 14113 on Thursday January 30, 2014 @07:36PM (#7154449)
Perhaps some implementation might consider 0 to be a 'NULL' value, assume it's null data and thus ignore it.
Re:Clinkle gets hacked before it even launches by X-Istence on Thursday January 30, 2014 @07:52PM (#7154526)
NULL != 0.
Re:Clinkle gets hacked before it even launches by thirsteh on Thursday January 30, 2014 @07:57PM (#7154541)
That never stopped JavaScript, Python and friends from giving them equal truthiness.
Re:Clinkle gets hacked before it even launches by X-Istence on Thursday January 30, 2014 @08:44PM (#7154737)
Ehm, Python doesn't have a NULL:

  >>> NULL == 0
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  NameError: name 'NULL' is not defined
Even None, which is as close to NULL you are going to get in Python is not 0.

  >>> None == 0
  False
Re:Clinkle gets hacked before it even launches by taway2012 on Thursday January 30, 2014 @10:52PM (#7155136)
This is probably what the parent meant:

    >>> 'truthy' if None else 'falsy'
    'falsy'
    >>> 'truthy' if False  else 'falsy'
    'falsy'
    >>> 'truthy' if 0 else 'falsy'
    'falsy'
Re:Clinkle gets hacked before it even launches by dragonwriter on Thursday January 30, 2014 @08:03PM (#7154573)
> That never stopped JavaScript, Python and friends from giving them equal truthiness.

Implicit casts -- including to booleans -- are dangerous, but if you try to write APIs to try to avoid every bad thing that might happen with naive use of implicit casting in every language that might be used to consume your API, you won't be able to do anything at all.

Re:Clinkle gets hacked before it even launches by aj on Thursday January 30, 2014 @10:21PM (#7155048)
"truthiness" is true/false and NOT NULL! 0 != null null != false
Re:Clinkle gets hacked before it even launches by ijl on Thursday January 30, 2014 @08:48PM (#7154752)
In [1]: bool(0)

Out[1]: False

Idiomatic Python may say "if not user_id:" and erroneously skip this.

Re:Clinkle gets hacked before it even launches by d0mine on Thursday January 30, 2014 @09:07PM (#7154811)
There is no `NULL` in Python. It is `None`.

Idiomatic test for `None` is:

   if something is None:
      # ...
It would be incorrect to use `if not something:` here.
Re:Clinkle gets hacked before it even launches by supergauntlet on Thursday January 30, 2014 @07:16PM (#7154366)
I believe it has to do with Unix-like OSes always assigning the UID 0 to root.
Re:Clinkle gets hacked before it even launches by lgas on Thursday January 30, 2014 @07:25PM (#7154399)
This doesn't make any sense unless for some reason you are creating unix users based on the users in your application and using the application user ID as the unix user ID which would be silly.
Re:Clinkle gets hacked before it even launches by mafuyu on Thursday January 30, 2014 @07:35PM (#7154446)
The convention of 0 as NULL is more likely, as UID 0 doesn't really make sense in this context.