[Filesystems-devel] Bug#794096: squashfs-tools: please add --numeric-uid-gid to unsquashfs
Maria Valentina Marin
marivalenm at gmail.com
Mon Aug 3 16:05:53 UTC 2015
On Mon, 3 Aug 2015 17:30:49 +0200 =?iso-8859-1?B?Suly6W15?= Bobbio
<lunar at debian.org> wrote:
> Tiny nitpick: the option might now have the best name. `unsquashfs`
> currently supports `-l` = `-ls` and `-ll` = `-lls`. I guess the latter
> is far 'long ls'. Puting the 'n' in the middle of 'ls' seems a bit
> confusing.
fixed in the attached patch
> Maybe the call to getpwuid() could be avoided entirely if numeric_ls is
> set? With the above this will look up the NSS database, and then ditch
> the result. This makes unecessary computations.
thanks also fixed
`-
-------------- next part --------------
diff -Nru squashfs-tools-4.2+20130409/debian/changelog squashfs-tools-4.2+20130409/debian/changelog
--- squashfs-tools-4.2+20130409/debian/changelog 2013-09-18 10:22:27.000000000 +0200
+++ squashfs-tools-4.2+20130409/debian/changelog 2015-08-03 16:15:27.000000000 +0200
@@ -1,3 +1,10 @@
+squashfs-tools (1:4.2+20130409-2.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Adding lns option to unsquashfs
+
+ -- akira <marivalenm at gmail.com> Mon, 03 Aug 2015 16:12:14 +0200
+
squashfs-tools (1:4.2+20130409-2) unstable; urgency=low
* New maintainer (closes: #723600).
diff -Nru squashfs-tools-4.2+20130409/debian/manpages/unsquashfs.1 squashfs-tools-4.2+20130409/debian/manpages/unsquashfs.1
--- squashfs-tools-4.2+20130409/debian/manpages/unsquashfs.1 2013-05-09 22:22:49.000000000 +0200
+++ squashfs-tools-4.2+20130409/debian/manpages/unsquashfs.1 2015-08-03 18:01:33.000000000 +0200
@@ -32,6 +32,8 @@
list filesystem, but don't unsquash.
.IP "\-ll, \-lls" 4
list filesystem with file attributes (like ls \-l output), but don't unsquash.
+.IP "\-nl, \-nls" 4
+list filesystem with file attributes (like ls \-n output), but don't unsquash.
.IP "\-f, \-force" 4
if file already exists then overwrite.
.IP "\-s, \-stat" 4
diff -Nru squashfs-tools-4.2+20130409/debian/patches/nousername squashfs-tools-4.2+20130409/debian/patches/nousername
--- squashfs-tools-4.2+20130409/debian/patches/nousername 1970-01-01 01:00:00.000000000 +0100
+++ squashfs-tools-4.2+20130409/debian/patches/nousername 2015-08-03 18:01:40.000000000 +0200
@@ -0,0 +1,68 @@
+--- a/unsquashfs.c
++++ b/unsquashfs.c
+@@ -62,7 +62,7 @@ char *file_data;
+ char *data;
+ unsigned int block_size;
+ unsigned int block_log;
+-int lsonly = FALSE, info = FALSE, force = FALSE, short_ls = TRUE;
++int lsonly = FALSE, info = FALSE, force = FALSE, short_ls = TRUE, numeric_ls = FALSE;
+ int use_regex = FALSE;
+ char **created_inode;
+ int root_process;
+@@ -482,8 +482,8 @@ int print_filename(char *pathname, struc
+ char str[11], dummy[12], dummy2[12]; /* overflow safe */
+ char *userstr, *groupstr;
+ int padchars;
+- struct passwd *user;
+- struct group *group;
++ struct passwd *user = NULL;
++ struct group *group = NULL;
+ struct tm *t;
+
+ if(short_ls) {
+@@ -491,8 +491,9 @@ int print_filename(char *pathname, struc
+ return 1;
+ }
+
+- user = getpwuid(inode->uid);
+- if(user == NULL) {
++ if(!numeric_ls)
++ user = getpwuid(inode->uid);
++ if(user == NULL || numeric_ls) {
+ int res = snprintf(dummy, 12, "%d", inode->uid);
+ if(res < 0)
+ EXIT_UNSQUASH("snprintf failed in print_filename()\n");
+@@ -505,8 +506,9 @@ int print_filename(char *pathname, struc
+ } else
+ userstr = user->pw_name;
+
+- group = getgrgid(inode->gid);
+- if(group == NULL) {
++ if(!numeric_ls)
++ group = getgrgid(inode->gid);
++ if(group == NULL || numeric_ls) {
+ int res = snprintf(dummy2, 12, "%d", inode->gid);
+ if(res < 0)
+ EXIT_UNSQUASH("snprintf failed in print_filename()\n");
+@@ -2512,6 +2514,11 @@ int main(int argc, char *argv[])
+ strcmp(argv[i], "-ll") == 0) {
+ lsonly = TRUE;
+ short_ls = FALSE;
++ } else if(strcmp(argv[i], "-nls") == 0 ||
++ strcmp(argv[i], "-nl") == 0) {
++ lsonly = TRUE;
++ short_ls = FALSE;
++ numeric_ls = TRUE;
+ } else if(strcmp(argv[i], "-linfo") == 0 ||
+ strcmp(argv[i], "-li") == 0) {
+ info = TRUE;
+@@ -2569,6 +2576,9 @@ options:
+ ERROR("\t-ll[s]\t\t\tlist filesystem with file "
+ "attributes (like\n");
+ ERROR("\t\t\t\tls -l output), but don't unsquash\n");
++ ERROR("\t-nl[s]\t\t\tlist filesystem with file "
++ "attributes (like\n");
++ ERROR("\t\t\t\tls -n output), but don't unsquash\n");
+ ERROR("\t-f[orce]\t\tif file already exists then "
+ "overwrite\n");
+ ERROR("\t-s[tat]\t\t\tdisplay filesystem superblock "
diff -Nru squashfs-tools-4.2+20130409/debian/patches/series squashfs-tools-4.2+20130409/debian/patches/series
--- squashfs-tools-4.2+20130409/debian/patches/series 2013-05-09 22:22:49.000000000 +0200
+++ squashfs-tools-4.2+20130409/debian/patches/series 2015-08-03 16:30:54.000000000 +0200
@@ -1 +1,2 @@
0001-kfreebsd.patch
+nousername
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/filesystems-devel/attachments/20150803/8bd10bfd/attachment.sig>
More information about the Filesystems-devel
mailing list