mklocale(1) may silently create corrupted db file when fwrite(3) fail.

Issue #28 closed
Takehiko NOZAKI repo owner created an issue

mklocaledb.c doesn't check fwrite(3)'s return value. so if fwrite(3) fail (disk full and so on), created locale db may be broken.

Comments (5)

  1. Takehiko NOZAKI reporter

    Squashed commit of the following:

    commit ef8da4b5c5da2eb0da39608b34348a82eed36fa3 Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 13:20:45 2014 +0900

    CLEANUP: remove dead code.
    

    commit 87030660adb3241ceea935e32e0545b71e7ea254 Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 13:17:13 2014 +0900

    CLEANUP: call setprogname(3) and use getprogname(3) to print usage().
    

    commit ddbb98229f0b3d31bd043e5cdaec3d4a09028de9 Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 13:14:43 2014 +0900

    CLEANUP: use EXIT_{SUCCESS,FAILURE} instead of 0/1.
    

    commit 7b5350ac43553166e739e749f36c75e40bf9836e Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 13:10:13 2014 +0900

    BUGFIX: Issue #29 -- mklocale(1) self license violation about BSDL 2-clause.
    

    commit ab5f26c509b72a336c01604baedb53a15f561549 Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 12:56:42 2014 +0900

    CLEANUP: use efun(3) for malloc/strn?dup/strlcpy/fopen error check.
    

    commit f7b96a71fdba0be73cdc3ce68744e46a34762705 Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 12:31:33 2014 +0900

    BUGFIX: Issue #28 -- mklocale(1) may silently create corrupted db file when fwrite(3) fail.
    

    commit b1aad39466d81895296a12229cf7803ef99be8c3 Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 12:04:27 2014 +0900

    BUGFIX: Issue #27 -- mklocale(1) uses strncpy(3).
    1. add set_encoding() function and use strlcpy() in it.
    2. add check string truncation, and call yyerror() if detected.
    

    commit b9442a02b8f97e33db10042152e05db4d8606ccc Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 11:48:44 2014 +0900

    CLEANUP: use uint32_t instead of obsolete u_int32_t.
    <<cset 199b3d2259bdd42cc4e4d54d21ea26c86e0b6e12>> is not enough.
    

    commit 4a50d9544cd0f90cc6c1253b1a5e42b582c3ecdb Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 11:37:41 2014 +0900

    CLEANUP: apply style, fix header include order.
    

    commit fc8791e371cdc892bd191b27555694c7d1a7fe32 Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 11:34:17 2014 +0900

    CREANUP: ANSI-fy, change K&R C -> ISO-C prototype, and ac/av -> argc/argv.
    

    commit 780f3f0d36c77c4ecd0151d0f645ae9db6693f91 Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 11:17:16 2014 +0900

    CLEANUP: de-__P(), remove ancient K&R C source compatibility.
    

    commit 199b3d2259bdd42cc4e4d54d21ea26c86e0b6e12 Author: Takehiko NOZAKI tnozaki@outlook.com Date: Fri Jul 25 11:11:02 2014 +0900

    CLEANUP: use uint32_t instead of obsolete u_int32_t.
    

    → <<cset 655f218c0116>>

  2. Log in to comment