Revert "daemon: send_dirent_info: Use designated compound literal for tsk_dirent"

This breaks compilation:

tsk.c: In function ‘send_dirent_info’:
tsk.c:209:32: error: passing argument 2 of ‘file_metadata’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  209 |   file_metadata (fsfile->meta, &dirent);
      |                                ^~~~~~~
tsk.c:51:43: note: expected ‘guestfs_int_tsk_dirent *’ but argument is of type ‘const struct guestfs_int_tsk_dirent *’
   51 | static void file_metadata (TSK_FS_META *, guestfs_int_tsk_dirent *);
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~
tsk.c:211:43: error: passing argument 2 of ‘xdr_guestfs_int_tsk_dirent’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  211 |   ret = xdr_guestfs_int_tsk_dirent (&xdr, &dirent);
      |                                           ^~~~~~~
In file included from tsk.c:29:
../common/protocol/guestfs_protocol.h:5215:51: note: expected ‘guestfs_int_tsk_dirent *’ but argument is of type ‘const struct guestfs_int_tsk_dirent *’
 5215 | extern  bool_t xdr_guestfs_int_tsk_dirent (XDR *, guestfs_int_tsk_dirent*);
      |                                                   ^~~~~~~~~~~~~~~~~~~~~~~

This reverts commit b5000cf547.
This commit is contained in:
Richard W.M. Jones
2026-02-11 12:06:06 +00:00
parent 955ea8882b
commit 8ded6e8858

View File

@@ -181,8 +181,12 @@ send_dirent_info (TSK_FS_FILE *fsfile, const char *path)
XDR xdr;
int ret = 0;
size_t len = 0;
struct guestfs_int_tsk_dirent dirent;
CLEANUP_FREE char *buf = NULL, *fname = NULL;
/* Set dirent fields */
memset (&dirent, 0, sizeof dirent);
/* Build the full relative path of the entry */
ret = asprintf (&fname, "%s%s", path, fsfile->name->name);
if (ret < 0) {
@@ -190,7 +194,14 @@ send_dirent_info (TSK_FS_FILE *fsfile, const char *path)
return -1;
}
/* Allocate XDR buffer */
dirent.tsk_inode = fsfile->name->meta_addr;
dirent.tsk_type = file_type (fsfile);
dirent.tsk_name = fname;
dirent.tsk_flags = file_flags (fsfile);
file_metadata (fsfile->meta, &dirent);
/* Serialize tsk_dirent struct. */
buf = malloc (GUESTFS_MAX_CHUNK_SIZE);
if (buf == NULL) {
perror ("malloc");
@@ -199,15 +210,6 @@ send_dirent_info (TSK_FS_FILE *fsfile, const char *path)
xdrmem_create (&xdr, buf, GUESTFS_MAX_CHUNK_SIZE, XDR_ENCODE);
const struct guestfs_int_tsk_dirent dirent = {
.tsk_inode = fsfile->name->meta_addr,
.tsk_type = file_type (fsfile),
.tsk_name = fname,
.tsk_flags = file_flags (fsfile),
};
file_metadata (fsfile->meta, &dirent);
ret = xdr_guestfs_int_tsk_dirent (&xdr, &dirent);
if (ret == 0) {
perror ("xdr_guestfs_int_tsk_dirent");
@@ -216,9 +218,10 @@ send_dirent_info (TSK_FS_FILE *fsfile, const char *path)
}
len = xdr_getpos (&xdr);
xdr_destroy (&xdr);
/* Send serialized tsk_dirent out. */
/* Send serialised tsk_dirent out. */
return send_file_write (buf, len);
}