https://gcc.gnu.org/g:7aa771dc011669f4f8ac40f1b89b61fa36a477c8

commit r17-4424-g7aa771dc011669f4f8ac40f1b89b61fa36a477c8
Author: Xavier Del Campo Romero <[email protected]>
Date:   Thu Sep 17 22:38:46 2026 +0200

    cobol: Revert "cobol: NUL-terminate OS filename"
    
    This commit is in fact redundant since posix-open already performs
    this operation.
    
    On the other hand, the string length validation logic should not rely on
    hardcoded values such as filename-max. Maximum filename length is
    already handled by the kernel e.g.: by returning ENAMETOOLONG from
    open(2).
    
    libgcobol/ChangeLog:
    
            * compat/gnu/lib/CBL_OPEN_FILE.cbl: Revert.

Diff:
---
 libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl | 29 ++++-------------------------
 1 file changed, 4 insertions(+), 25 deletions(-)

diff --git a/libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl 
b/libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl
index 2c9a83085075..0cc616453ae1 100644
--- a/libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl
+++ b/libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl
@@ -48,21 +48,18 @@
        WORKING-STORAGE SECTION.
        77  errno-val            Binary-Long.
        01  ws-access-mode PIC 9(8) comp-5.
-       01  filename-max         CONSTANT AS 8 * 1024.
-       01  filename            PIC X(filename-max).
-       77  filename-len         PIC 9(4) BINARY VALUE ZERO.
        LINKAGE SECTION.
        01  RETCODE     PIC X(2) COMP-5 VALUE 0.
        01  REDEFINES RETCODE.
         03 MSB PIC X.
         03 LSB BINARY-CHAR.
-       01  Lk-filename          PIC X ANY LENGTH.
+       01  filename     PIC X ANY LENGTH.
        01  access-mode PIC X COMP-X.
        01  deny-mode   PIC X COMP-X.  *>  Not supported (must be 0).
        01  device      PIC X COMP-X.  *>  Not supported (must be 0).
        01  file-handle PIC X(4) COMP-5.
 
-       PROCEDURE DIVISION USING Lk-filename,
+       PROCEDURE DIVISION USING filename,
                        By Reference access-mode,
                        By Reference deny-mode,
                        By Reference device,
@@ -91,26 +88,8 @@
                  GOBACK
             END-EVALUATE.
 
-           COMPUTE filename-len =
-                FUNCTION LENGTH(FUNCTION TRIM(Lk-filename)).
-
-      * If Lk-filename ends in NUL, use it ... 
-           IF Lk-filename(filename-len:1) = ZERO
-              MOVE FUNCTION posix-open(Lk-filename,
-                                       ws-access-mode, deny-mode)
-                  TO errno-val
-      * ... else make a copy and terminate it with a NUL, unless it's too 
long. 
-            ELSE
-              IF filename-max < filename-len + 1
-                MOVE 30 to RETCODE
-                GOBACK
-              END-IF
-              MOVE Lk-filename to filename
-              MOVE ZERO TO filename(filename-len + 1:1)
-              MOVE FUNCTION posix-open(filename,
-                                       ws-access-mode, deny-mode)
-                   TO errno-val
-            END-IF.
+           MOVE FUNCTION posix-open(filename, ws-access-mode, deny-mode)
+               TO errno-val.
       D     Display 'CBL_OPEN_FILE: RETCODE: ' RETCODE.
            If errno-val is < 0
            then

Reply via email to