ObjFW  History Of Ticket 134d90a99615cc75

Artifacts Associated With Ticket 134d90a99615cc75

  1. Ticket change [3fa39fc600] (rid 42447) by js on 2023-07-22 07:17:50:

    1. icomment:
      Currently, `OFString` does not reject a `\0` within the string. However, `OFString`s often get passed as C strings. Therefore, either one of the following should be done:
      
       * Audit all occurrences where an `OFString` is passed as a C string.
       * Truncate the length to the first occurrence of `\0`.
       * Extend the current string checking code to reject `\0` in there if a length has been specified.
         * If no length has been specified, it cannot be longer until the `\0` anyway.
         * A good place for this would be in the code that checks whether the passed string is valid UTF-8, to avoid going through the same string twice.
           * This means strings of another encoding need to check for `\0` during their conversion to UTF-8, as UTF-8 is not validated there since it was just converted and hence assumed correct.
      
      The first option probably doesn't scale, as there are many places where an `OFString` is passed as a C string and doesn't cover where this is being done outside of ObjFW. So this would be a potential foot gun for users.
      
      The second option might be unexpected and lead to bugs, because the user has just specified a length for the string to create, but the just created string has a different length.
      
      Therefore, the third option probably makes most sense.
      
    2. login: "js"
    3. milestone initialized to: "none"
    4. mimetype: "text/x-markdown"
    5. priority initialized to: "High"
    6. private_contact initialized to: "c8a37120da0f2517297a682b10203a3a5eef21c2"
    7. severity initialized to: "Important"
    8. status initialized to: "Open"
    9. title initialized to: "String \0 safety"
    10. type initialized to: "Enhancement"
  2. Ticket change [ef42aecc12] (rid 45797) by js on 2024-03-17 09:02:50:

    1. login: "js"
    2. milestone changed to: "1.1"
    3. mimetype: "text/x-markdown"
    4. resolution changed to: "Open"
  3. Ticket change [3ac85cf6d9] (rid 45892) by js on 2024-03-23 16:58:26:

    1. login: "js"
    2. mimetype: "text/x-markdown"
    3. severity changed to: "Severe"
    4. subsystem changed to: "none"
  4. Ticket change [5aecadaf53] (rid 47005) by js on 2024-04-28 15:46:20:

    1. login: "js"
    2. milestone changed to: "1.2"
    3. mimetype: "text/x-markdown"