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
