• sem@piefed.blahaj.zone
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      17 hours ago

      Rust by default will not allow you to make certain kinds of errora, which is great. But if you are doing something advanced, down at the hardware level, you might need to disable those defaults in order to write the code you need. This is what people mean by “unsafe” – lacking the normal memory safeguards.

      With careful coding, “unsafe rust” or normal C, for that matter, can be free of bugs and safe. But if programmers make a mistake, vulnerabilities can creep in more easily in the unsafe sections.

      Is that basically it?

      • CandleTiger@programming.dev
        link
        fedilink
        English
        arrow-up
        4
        ·
        14 hours ago

        But if you are doing something advanced, down at the hardware level

        This part is wrong. Otherwise yes correct.

        The “unsafe” code in rust is allowed to access memory locations in ways that skip the compiler’s check and guarantee that that memory location has valid data. They programmer is on their own to ensure that.

        Which as you say is just the normal state of affairs for all C code.

        This is needed not because of hardware access but just because sometimes the proof that the access is safe is beyond what the compiler is able to represent.