00:01:59  * unixpicklejoined
00:33:52  * plutoniixjoined
00:33:58  * plutoniixquit (Max SendQ exceeded)
00:34:31  * plutoniixjoined
01:56:23  * bradleymeckquit (Quit: bradleymeck)
02:47:18  * unixpicklequit (Quit: My Mac has gone to sleep. ZZZzzz…)
03:02:09  * unixpicklejoined
03:06:22  * unixpicklequit (Client Quit)
03:23:48  * unixpicklejoined
03:26:55  * unixpicklequit (Client Quit)
05:15:43  <Guest28860>caitp: yep I did mean, say, casting a Value that is a number to a Function
06:38:25  * BobGneujoined
07:16:45  * plutoniixquit (Ping timeout: 260 seconds)
07:19:10  * BobGneuquit (Read error: Connection reset by peer)
07:29:20  * plutoniixjoined
09:50:58  * plutoniixquit (Quit: Leaving)
10:25:10  * mylesborinsquit (Quit: farewell for now)
10:25:41  * mylesborinsjoined
10:29:30  * kkaeferjoined
11:07:09  * chrisdickinsonquit (Ping timeout: 268 seconds)
11:08:27  * chrisdickinsonjoined
11:09:02  * ebarrettquit (Quit: WeeChat 1.5)
12:14:25  * kkaeferquit
12:47:12  <caitp>Guest28860: well, I think it will fail an assertion if it's not a valid cast
12:47:34  <caitp>so, should crash your app
12:48:03  <Guest28860>caitp: As() doesn't actually do any assertion (unless compiled with additional flags)
12:48:50  <caitp>well, if you compile out assertions, you won't hit them
12:49:22  <caitp>you can add a typecheck before casting if you aren't sure
12:49:39  <Guest28860>Right, so I can use val->IsFunction()
12:49:42  <Guest28860>before casting
12:49:49  <caitp>yes
12:50:05  <Guest28860>I'm curious about the kinds of security issues that can arise if I don't
12:50:22  <Guest28860>since (by default) the assertions don't seem to be compiled in
12:51:05  <caitp>if you aren't building with assertions, you can very easily make invalid accesses to an object
12:51:26  <caitp>especially when in-object fields are present
12:52:27  <Guest28860>mind elaborating on the later part? (sorry, and thanks for replying to me!)
12:57:34  <caitp>so, lets say you cast your function to something else, like a JSMap
12:58:30  <caitp>their memory layout is incompatible, and code expecting a JSMap will assume that memory is not a function
12:59:24  <caitp>potentially you could overwrite the code entry ptr, with some nonsense, and accidentally call it
13:00:22  <caitp>that could then be exploited by a clever attacker to get you to execute remote code
13:00:34  <Guest28860>ah fantastic, I suspect something like this to be possible!
13:01:01  <Guest28860>thanks for your explanation
13:01:33  <caitp>i suggest enabling assertions for development :)
13:02:00  <Guest28860>oh I agree, I am more trying to understand what an attacker can do :)
13:10:01  * bradleymeckjoined
14:20:26  * unixpicklejoined
15:46:27  * bradleymeckquit (Quit: bradleymeck)
16:21:22  * RT|Chatzillaquit (Quit: ChatZilla 0.9.86.1 [Firefox 2.0.0.22pre/2010030309])
16:38:04  * unixpicklequit (Quit: My Mac has gone to sleep. ZZZzzz…)
16:44:00  * bradleymeckjoined
17:05:58  * dherman___changed nick to dherman
17:08:28  * jwolfejoined
17:08:30  <jwolfe>it looks like the the test system is supplying --enable-slow-asserts to d8, but d8 is warning that that's not a recognized option. is this a known issue?
17:11:08  * bradleymeckquit (Quit: bradleymeck)
17:16:51  <caitp>jwolfe: it's an option if ENABLE_SLOW_DCHECKS is enabled
17:17:23  <jwolfe>oh, so the test system unconditionally enables them if they're compiled in. that makes sense.
17:17:39  <caitp>if --enable-slow-asserts is in the FLAGS: line in the test, then that would be a problem
17:18:07  <caitp>well, I'm not sure
17:18:15  <caitp>sometimes it just dies if you give it a bad option
17:31:49  * bradleymeckjoined
18:27:28  * unixpicklejoined
18:59:27  * rwlbuis_joined
21:03:08  * bradleymeckquit (Quit: bradleymeck)
21:48:06  * unixpicklequit (Quit: My Mac has gone to sleep. ZZZzzz…)
22:32:38  * RT|Chatzillajoined
23:03:46  * unixpicklejoined