[-] barubary@infosec.exchange 11 points 2 months ago

"AI" has also successfully found security vulnerabilities that don't exist.

[-] barubary@infosec.exchange 14 points 6 months ago* (last edited 6 months ago)

I like the original.

Comic by Jason Heeris, 2013. Panel 1: Person staring at screen with code: if c == ',': backtrack = 1 Panel 2: Zoomed out. Code now in big thought bubble Panel 3: Zoomed out more. Thought bubble: "... so if the current character is a comma, we set the backtracking flag ..." Panel 4: Zoomed out more. Thought bubble fills half the panel. It shows a state diagram, presumably part of a finite automaton corresponding to a regular expression. Panel 5: Zoomed out more. Thought bubble fills most of the panel. Flowchart. Step "parse" leads to decision "-i flag"; one branch to box with previous state diagram (scaled down), other branch to step "remote config", then decision "https" with branches out of visible area. Panel 6: Zoomed out more. Huge thought bubble with scribbled diagrams and notes and arrows connecting them. E.g. "commit #5763 to here caused bug or did it just expose it?", pointing to "new config format parser" and "callback for config state"; "CLI entry point" has a note on it saying "Sarah wrote this, maybe ask about weird parse logic?"; "remote config loader" has a note "no access to source - are we just recalculating its state later?". Panel 7: Back to normal zoom. Another person with a tie and coffee in hand peers over the screen: "Hey, so I just sent you an email about that thing". The thought bubble is collapsing into a black hole. Panel 8: Tie/coffee guy is walking off, whistling. Original person is back to staring at screen with code: if c == ',': backtrack = 1

[-] barubary@infosec.exchange 69 points 6 months ago

If you had let me write the C++ code, I could have literally destroyed your dataset in a couple of seconds.

[-] barubary@infosec.exchange 16 points 7 months ago

C) It's an obvious joke.

[-] barubary@infosec.exchange 18 points 8 months ago

Because let x: y is syntactically unambiguous, but you need to know that y names a type in order to correctly parse y x. (Or at least that's the case in C where a(b) may be a variable declaration or a function call depending on what typedefs are in scope.)

[-] barubary@infosec.exchange 16 points 8 months ago* (last edited 8 months ago)

POV: You open vim for the first time.

Screenshot of vim start screen. The instruction to exit vim is highlighted in red. It reads: VIM - Vi IMproved version 9.1.697 by Bram Moolenaar et al. Modified by team+vim@tracker.debian.org Vim is open source and freely distributable Help poor children in Uganda! type :help iccf for information type :q to exit type :help or  for on-line help type :help version9 for version info

[-] barubary@infosec.exchange 16 points 10 months ago

The same is true of std::endl. std::endl is simply defined as << '\n' << std::flush; nothing more, nothing less. In all cases where endl gives you a "properly translated" newline, so does \n.

[-] barubary@infosec.exchange 33 points 10 months ago

std::endl provides zero portability benefits. C++ does have a portable newline abstraction, but it is called \n, not endl.

[-] barubary@infosec.exchange 11 points 11 months ago

Arguably, I never fully learned Bash syntax, but it also is just a stupid if-statement. There shouldn’t be that much complexity in it.

There isn't. The syntax is

if COMMANDthenCOMMAND(s)...elseCOMMAND(s)...fi

I believe, if you write the then onto the next line, then you don’t need the semicolon.

Yes, but that's true of all commands.

foo; bar; baz

is the same as

foobarbaz

All the ] and -z stuff has nothing to do with if. In your example, the command you're running is literally called [. You're passing it three arguments: -z, "$var", and ]. The ] argument is technically pointless but included for aesthetic reasons to match the opening ] (if you wanted to, you could also write test -z "$var" because [ is just another name for the test command).

Since you can logically negate the exit status of every command (technically, every pipeline) by prefixing a !, you could also write this as:

if ! test "$var"; then ...

The default mode of test (if given one argument) is to check whether it is non-empty.

Now, if you don't want to deal with the vagaries of the test command and do a "native" string check, that would be:

case "$var" in  "") echo "empty";;  *) echo "not empty";;esac
[-] barubary@infosec.exchange 70 points 1 year ago

Strictly speaking, it should be

Unsafe block syntax in C++

{  ...}
[-] barubary@infosec.exchange 15 points 2 years ago

@hstde @Spore Even better, the alphabetical index of function names was generated in English first and then translated, meaning the documentation looks like a scrambled mess in any other language because it is alphabetized according to what the English equivalent would be. #excel

view more: next ›

barubary

0 post score
0 comment score
joined 3 years ago