5 ms·
Author of that post here in case you have any questions, ask me anything!
by xena 6y ago
Author of that post here in case you have any questions, ask me anything!
- pilaf 6y agoWhat caused them to ban you?
- xena 6y agoWriting this post: https://christine.website/blog/v-vaporware-2019-06-23 https://christine.website/blog/v-vaporware-2019-06-23
- discmonkey 6y agoIts been a while since I've read something that entertaining. Thank you.
- dTal 6y agoSince you're here... >Do not shell out to arbitrary commands in the standard library for any reason. If an attacker can somehow run code on a server with a V binary that uses the download_file function, they can replace curl with a malicious binary that is able to do anything the attacker wants. I don't understand this threat model. If an attacker is in a position to replace /usr/bin/curl with a malicious binary, surely you're already pwned? And surely an attacker could just as easily switch out libcurl.so as the curl binary? I just can't make sense of any threat model which treats the OS as untrusted.
- xena 6y agoAs written it's it won't just call /usr/bin/curl, but the first curl in $PATH. Not to mention just hardcoding /usr/bin/curl isn't portable (Android/NixOS don't have a /usr/bin like you expect). Also take a look at this: https://christine.website/blog/OVE-20190623-0001 https://christine.website/blog/OVE-20190623-0001
- a1369209993 6y agoMany computers are misconfigured to include "." (the current working directory at the time of execve) in PATH, which allows a trivial privilege escalation and/or native code execution for any attacker that can write a executable file named "curl" in any directory that the target process can be convinced to cd into. Shelling out also means the process will unexpectedly stop working if /usr/bin/curl disappears (or wasn't installed in the first place), whereas that's a known and expected issue for libcurl.so and there are established tools (eg `ldd /bin/program`) for tracking such dependencies.
- shawnz 6y agoWhat is the problem with the "still reachable" memory report in Valgrind? That's not a leak, that is just skipping an unnecessary free() that will happen anyway when the process exits
- xena 6y agoI may be wrong, but my C teacher in college told me that was a leak.
- chrismorgan 6y agoI’m with shawnz. If it’s a global/static, and you’re the entire process, freeing it is altogether a waste. Actually, if you have actual destructors, it’s even potentially hazardous. Rust deliberately eschews static constructors and destructors due to their problems, so I presume it would fall foul of this test of yours as well. It offers this explanation: https://doc.rust-lang.org/1.6.0/complement-design-faq.html#there-is-no-life-before-or-after-main-no-static-ctorsdtors https://doc.rust-lang.org/1.6.0/complement-design-faq.html#t... (link is to the Rust 1.6 docs; in theory by the next release the content was ported to the main site, but I can’t find it and suspect it got lost at some point). Now if you’re a library, then having the ability to deinitialise your library might be useful. Probably not, but it might be.
- acqq 6y agoFailing Valgrind is surely not a state in which neither a serious program should be nor the code produced by it. Most programs and their results that are in serious use are actually regulaly tested with Valgrind and therefore don't have such elementary failures, unless they aren't maintained. It doesn't have to be "a library" -- as soon as you want to test it, you don't want it to fail the trivial tests. Nobody wins anything by keeping that in that state.
- shawnz 6y agoWho says having "still reachable" memory in your Valgrind output is a "fail" though? Look at this excerpt from the Valgrind manual: > Since the block is still pointed at, the programmer could, at least in principle, have freed it before program exit. "Still reachable" blocks are very common and arguably not a problem. So, by default, Memcheck won't report such blocks individually. https://www.valgrind.org/docs/manual/mc-manual.html#mc-manual.leaks https://www.valgrind.org/docs/manual/mc-manual.html#mc-manua...
- delian66 6y agoHm, are you sure that attacking the V's playground at the time and publishing info, that others could use to attack it, did not have something to do with your ban?
- lightgreen 6y agoSo you know the context. Can you please tell us, why exactly the blog author was banned?
- delian66 6y agoI do not know the full context, because at the time I was not involved with the V project. I did notice then though that the playground was taken down, and there is this: https://web.archive.org/web/20191223200601/https://christine.website/blog/OVE-20190623-0001 https://web.archive.org/web/20191223200601/https://christine... (unfortunately I could not find an earlier snapshot, sorry)
- lightgreen 6y agoOK, looks like the "security advisory" was posted before the playground was fixed, and with no good to anybody. That's nasty.
- xena 6y agoIt was posted after the project owner confirmed it was down and would stay down.
- lightgreen 6y agoI hardly believe that. If that was true, I'd expect this fact (that the server will stay down) to be mentioned in the blog post. The blog only says "playground server stopped replying" and "The V creator acknowledged the issue and admitted the machine was compromised".
- xpuente 6y ago> So the compiler with "zero dependencies" is a dynamically linked binary > with dependencies on libpthread and libc. And requires an OS to run too. That's another dependency! This and memory leak, seems quite forced. Ad homminens doesn't help either.
- gavinray 6y agoWow, it makes me sad to hear they had retaliated in this way. You're one of the most knowledgeable people I've seen, with a consistently incredible blog I've learned so much from. At the end of the day, it's an experimental language that (I thought) was fun to mess around with. Not a very kosher way to respond to factual criticism.
- xena 6y agoThanks, I try. The last article had to be edited down because as it was written initially (see the git history of https://github.com/Xe/site https://github.com/Xe/site) it made the V cult come after me. This among other things is why I do not plan to write about V in the future.
- delian66 6y agoV is just an open source project. It does not have its own religion, or subculture. On the contrary - the V community is actually very diverse - in thought, background, age etc. I am a V contributor. I am not a member of a cult. What is your basis for calling the V community that?
- whycombagator 6y ago> The last article had to be edited down...see the git history For anyone interested: https://github.com/Xe/site/pull/167/commits/354c6079acc2d02a95647c637065f0539bca4787 https://github.com/Xe/site/pull/167/commits/354c6079acc2d02a...
- lightgreen 6y ago> they had retaliated in this way We don't know exactly why they banned Christine. There's some evidence that Christine is not fully honest, for example: * they did not mention this post https://web.archive.org/web/20191223200601/https://christine.website/blog/OVE-20190623-0001 https://web.archive.org/web/20191223200601/https://christine... which is very rude in my opinion, and unprofessional * Christine mentioned they blocked them from contributing while in fact Christine contributed zero code to the project during the year they were blogging about the project
- UncleEntity 6y agoIDK, some of your criticisms seem a bit over the top. For example, compiling 1000 files with 1200 printfs results in ~80mb (according to my poor math skills) worth of static strings and then you state they aren't doing a very good job of creating small binaries because, dunno? Sure, some fancy whole program optimizations should be able to figure out the 1.2 million functions are basically the same and just compile one version -- which, honestly, you'd think the C++ compiler could also be able to figure out but seems to not be doing either. Not that I think they should be banning people for things like this. --edit-- Actually...thinking about this a bit it seems a particularly hard optimization problem since the functions only vary by the address of the string they print so the optimizer would need to know this detail while determining the function hash (or whatever is used for equality testing). --edit2-- Yep, saw the downvotes coming...perfectly fine to bash on someone else's hard work on a new language though. In all actuality, if I were working on an optimizer I don't even think I'd bother with something like this because if you program like this (duplicate functions) in The Real World™ then you get what you deserve.
- delian66 6y ago> I do not plan to make any future update posts about the V programming language in the future. As a V contributor, I regret that you decided that. Even though I do not like your attitude towards what is in the end an open source project with many contributors, I do think that your posts when they contained objective and reproducible examples, were actually contributing indirectly to make V better, by pointing out our weak sides at the time of writing.
- xena 6y agoI just got tired of the anger that the posts get me on Twitter, email and on forums. If there wasn't so much transphobic garbage spat at me when those articles were new I would probably be working on a planning document for part 4.