Преглед на файлове

libdpkg: Make the uname and gname file_stat members non-const

We need to allocate and free them.
Guillem Jover преди 11 години
родител
ревизия
bc684d1e43
променени са 3 файла, в които са добавени 6 реда и са изтрити 6 реда
  1. 2 2
      lib/dpkg/file.h
  2. 2 2
      src/statcmd.c
  3. 2 2
      src/statdb.c

+ 2 - 2
lib/dpkg/file.h

@@ -42,8 +42,8 @@ struct file_stat {
 
 	/* Used by dpkg-statoverride when parsing the database to preserve the
 	 * user and group names in case the system does not know about them. */
-	const char *uname;
-	const char *gname;
+	char *uname;
+	char *gname;
 };
 
 void file_copy_perms(const char *src, const char *dst);

+ 2 - 2
src/statcmd.c

@@ -123,12 +123,12 @@ statdb_node_new(const char *user, const char *group, const char *mode)
 
 	filestat->uid = statdb_parse_uid(user);
 	if (filestat->uid == (uid_t)-1)
-		filestat->uname = user;
+		filestat->uname = nfstrsave(user);
 	else
 		filestat->uname = NULL;
 	filestat->gid = statdb_parse_gid(group);
 	if (filestat->gid == (gid_t)-1)
-		filestat->gname = group;
+		filestat->gname = nfstrsave(group);
 	else
 		filestat->gname = NULL;
 	filestat->mode = statdb_parse_mode(mode);

+ 2 - 2
src/statdb.c

@@ -204,7 +204,7 @@ ensure_statoverrides(enum statdb_parse_flags flags)
 
 		fso->uid = statdb_parse_uid(thisline);
 		if (fso->uid == (uid_t)-1)
-			fso->uname = thisline;
+			fso->uname = nfstrsave(thisline);
 		else
 			fso->uname = NULL;
 
@@ -225,7 +225,7 @@ ensure_statoverrides(enum statdb_parse_flags flags)
 
 		fso->gid = statdb_parse_gid(thisline);
 		if (fso->gid == (gid_t)-1)
-			fso->gname = thisline;
+			fso->gname = nfstrsave(thisline);
 		else
 			fso->gname = NULL;