Having finally managed to codesign Gdb!

On macOS Sonoma 14.7.4 (intel) mv starts as on PPC Tiger. It reaches lines #457 
and #459, but "target_dirfd_valid (fd)" delivers here FALSE, deduced from the 
fact that line #478 gets executed with errno presumingly 20 (on line #480 I can 
print err, which gives this value). x.rename_errno from line #454 is 17, as on 
PPC Tiger.

   457       if (x.rename_errno != 0)
   458         {
   459           int fd = target_directory_operand (lastfile, &sb);
   460           if (target_dirfd_valid (fd))
   461             {
   462               x.rename_errno = -1;
   463               target_dirfd = fd;
   464               target_directory = lastfile;
   465               n_files--;
   466             }
   467           else
   468             {
   469               /* The last operand LASTFILE cannot be opened as a 
directory.
   470                  If there are more than two operands, report an error.
   471  
   472                  Also, report an error if LASTFILE is known to be a 
directory
   473                  even though it could not be opened, which can happen if
   474                  opening failed with EACCES on a platform lacking O_PATH.
   475                  In this case use stat to test whether LASTFILE is a
   476                  directory, in case opening a non-directory with 
(O_SEARCH
   477                  | O_DIRECTORY) failed with EACCES not ENOTDIR.  */
   478               int err = errno;
   479               if (2 < n_files
   480                   || (O_PATHSEARCH == O_SEARCH && err == EACCES
   481                       && (sb.st_mode != 0 || stat (lastfile, &sb) == 0)
   482                       && S_ISDIR (sb.st_mode)))
   483                 error (EXIT_FAILURE, err, _("target %s"), quoteaf 
(lastfile));
   484             }
   485         }

n_files is 2, EACCES is presumingly 13 
(/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/errno.h:101,
 /* Permission denied */) – the others I cannot tell (O_PATHSEARCH does not 
seem to exist, O_SEARCH  is (O_EXEC | O_DIRECTORY)). The error() function is 
not executed and line #485 (no visible text output, cursor jumps over line 
#483) reached.

On line #519 target_directory is still 0x0, so

   537           ok &= do_move (source, dest, target_dirfd, dest_relname, &x);

is reached and job done correctly:

        pete 289 /\ ./ls -l k out
        ls: Zugriff auf 'k' nicht möglich: No such file or directory
        -rw-r--r-- 1 pete admin 0 23. Mai 15:38 out
        Exit 2

Interestingly the output is so polyglot…


So presumingly it's not renameatu() but rather 
lib/targetdir.c:61:target_directory_operand (char const *file, struct stat *st) 
that is faulty…


OK, I'll try to continue a bit today!

--

Greetings

  Pete

If the majority of cooking accidents happen in the kitchen, then why don't we 
just cook in other rooms?





Reply via email to