Date: Tuesday, November 15, 2022 @ 20:06:11
  Author: kpcyrd
Revision: 1348971

archrelease: copy trunk to community-x86_64

Added:
  webfs/repos/community-x86_64/PKGBUILD
    (from rev 1348970, webfs/trunk/PKGBUILD)
  webfs/repos/community-x86_64/webfs.patch
    (from rev 1348970, webfs/trunk/webfs.patch)
  webfs/repos/community-x86_64/webfsd.conf
    (from rev 1348970, webfs/trunk/webfsd.conf)
  webfs/repos/community-x86_64/webfsd.service
    (from rev 1348970, webfs/trunk/webfsd.service)
Deleted:
  webfs/repos/community-x86_64/PKGBUILD
  webfs/repos/community-x86_64/webfs.patch
  webfs/repos/community-x86_64/webfsd.conf
  webfs/repos/community-x86_64/webfsd.service

----------------+
 PKGBUILD       |   80 ++++----
 webfs.patch    |  500 +++++++++++++++++++++++++++----------------------------
 webfsd.conf    |   10 -
 webfsd.service |   22 +-
 4 files changed, 308 insertions(+), 304 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD    2022-11-15 20:05:39 UTC (rev 1348970)
+++ PKGBUILD    2022-11-15 20:06:11 UTC (rev 1348971)
@@ -1,38 +0,0 @@
-# Maintainer: Kyle Keen <[email protected]>
-# Contributor: Roman Kyrylych <[email protected]>
-# Contributor: Mark Rosenstand <[email protected]>
-# Contributor: Daniel J Griffiths <[email protected]>
-# Contributor: Chris Brannon <[email protected]>
-
-pkgname=webfs
-pkgver=1.21
-pkgrel=16
-pkgdesc="Simple and instant http server for mostly static content."
-arch=(x86_64)
-url="http://linux.bytesex.org/misc/webfs.html";
-license=("GPL")
-depends=('mime-types' 'openssl')
-backup=('etc/conf.d/webfsd')
-source=(https://dl.bytesex.org/releases/webfs/webfs-${pkgver}.tar.gz
-        webfsd.conf
-        webfs.patch
-        webfsd.service)
-md5sums=('6dc125fe160479404147e7bbfc781dbc'
-         'b2c1ab041a82acd8391b06dc38d986be'
-         '7294edcec2589df04bb775270d56536e'
-         'e1202dd915cba1a02e0016aa3a516b4a')
-
-build() {
-       cd "$srcdir/$pkgname-$pkgver"
-
-       patch -i "$srcdir/webfs.patch"
-       make
-}
-
-package() {
-       cd "$srcdir/$pkgname-$pkgver"
-
-       make prefix=/usr DESTDIR="$pkgdir" install
-       install -Dm644 "$srcdir/webfsd.conf"     "$pkgdir/etc/conf.d/webfsd"
-       install -Dm644 "$srcdir/webfsd.service"  
"$pkgdir/usr/lib/systemd/system/webfsd.service"
-}

Copied: webfs/repos/community-x86_64/PKGBUILD (from rev 1348970, 
webfs/trunk/PKGBUILD)
===================================================================
--- PKGBUILD                            (rev 0)
+++ PKGBUILD    2022-11-15 20:06:11 UTC (rev 1348971)
@@ -0,0 +1,42 @@
+# Maintainer: Kyle Keen <[email protected]>
+# Contributor: Roman Kyrylych <[email protected]>
+# Contributor: Mark Rosenstand <[email protected]>
+# Contributor: Daniel J Griffiths <[email protected]>
+# Contributor: Chris Brannon <[email protected]>
+
+pkgname=webfs
+pkgver=1.21
+pkgrel=17
+pkgdesc="Simple and instant http server for mostly static content."
+arch=(x86_64)
+url="http://linux.bytesex.org/misc/webfs.html";
+license=("GPL")
+depends=('mime-types' 'openssl')
+backup=('etc/conf.d/webfsd')
+source=(https://dl.bytesex.org/releases/webfs/webfs-${pkgver}.tar.gz
+        webfsd.conf
+        webfs.patch
+        webfsd.service)
+md5sums=('6dc125fe160479404147e7bbfc781dbc'
+         'b2c1ab041a82acd8391b06dc38d986be'
+         '7294edcec2589df04bb775270d56536e'
+         'e1202dd915cba1a02e0016aa3a516b4a')
+sha256sums=('98c1cb93473df08e166e848e549f86402e94a2f727366925b1c54ab31064a62a'
+            '35065c9fd1e493b5c6ac4582f783905d2d7755883e8234f1db7fa79ebb34a657'
+            'a648b7be3872300b20d2871dcc05a024e66e6dda68fb89da04c9f83fb0c6d3df'
+            'b174d0bfda8db95144b5a128e4de69820ff9e5be2715c99d809911c6961be939')
+
+build() {
+       cd "$srcdir/$pkgname-$pkgver"
+
+       patch -i "$srcdir/webfs.patch"
+       make
+}
+
+package() {
+       cd "$srcdir/$pkgname-$pkgver"
+
+       make prefix=/usr DESTDIR="$pkgdir" install
+       install -Dm644 "$srcdir/webfsd.conf"     "$pkgdir/etc/conf.d/webfsd"
+       install -Dm644 "$srcdir/webfsd.service"  
"$pkgdir/usr/lib/systemd/system/webfsd.service"
+}

Deleted: webfs.patch
===================================================================
--- webfs.patch 2022-11-15 20:05:39 UTC (rev 1348970)
+++ webfs.patch 2022-11-15 20:06:11 UTC (rev 1348971)
@@ -1,250 +0,0 @@
-# This patch performs the following:
-#
-# 1) user/group names my now be set to the system maximum using
-#    sysconf(_SC_LOGIN_NAME_MAX). They were previously hardcoded to 16 chars.
-#
-# 2) supplementary groups are now set according to the user webfs is running 
as.
-#    previously they were left as the calling user, which could be dangerous
-#    ex: sudo webfsd -u nobody, would leave webfsd with all of root's groups!
-#
-# 3) the supplementary group list is no longer made empty when using -g
-#
-# 4) supplementary groups are now checked for read access when generating
-#    directory listings
-#
-# 5) in ls.c/ls() changed type of uid and gid to uid_t and gid_t
-#
-# 6) in ls.c/ls() fixed a problem where the uid of the file was being compared
-#    to the gid of the user to check for readability
-#
-# 7) added a -G option to ignore/remove all supplementary groups
-#
-# 8) updated man page to reflect -G option
-#
-# 9) when the uid is 0, all files are now displayed as readable.
-#
-
-diff -urp webfs-1.21-orig/httpd.h webfs-1.21/httpd.h
---- webfs-1.21-orig/httpd.h    2004-06-10 05:45:50.000000000 -0400
-+++ webfs-1.21/httpd.h 2010-03-27 14:57:07.631540000 -0400
-@@ -169,6 +169,8 @@ extern int    lifespan;
- extern int    no_listing;
- extern time_t now;
- extern int     have_tty;
-+extern gid_t  *grp_list;
-+extern int    grp_num;
- 
- #ifdef USE_SSL
- extern int      with_ssl;
-diff -urp webfs-1.21-orig/ls.c webfs-1.21/ls.c
---- webfs-1.21-orig/ls.c       2004-06-10 05:45:50.000000000 -0400
-+++ webfs-1.21/ls.c    2010-03-28 10:52:09.449259926 -0400
-@@ -194,7 +194,9 @@ ls(time_t now, char *hostname, char *fil
-     struct myfile  **files = NULL;
-     struct myfile  **re1;
-     char           *h1,*h2,*re2,*buf = NULL;
--    int            count,len,size,i,uid,gid;
-+    int            count,len,size,i;
-+    uid_t          uid;
-+    gid_t          gid;
-     char           line[1024];
-     char           *pw = NULL, *gr = NULL;
- 
-@@ -241,14 +243,23 @@ ls(time_t now, char *hostname, char *fil
-       files[count]->r = 0;
-       if (S_ISDIR(files[count]->s.st_mode) ||
-           S_ISREG(files[count]->s.st_mode)) {
--          if (files[count]->s.st_uid == uid &&
-+          if (uid == 0)
-+              files[count]->r = 1;
-+          else if (files[count]->s.st_uid == uid &&
-               files[count]->s.st_mode & 0400)
-               files[count]->r = 1;
--          else if (files[count]->s.st_uid == gid &&
-+          else if (files[count]->s.st_gid == gid &&
-                    files[count]->s.st_mode & 0040)
--              files[count]->r = 1; /* FIXME: check additional groups */
-+              files[count]->r = 1;
-           else if (files[count]->s.st_mode & 0004)
-               files[count]->r = 1;
-+          else {
-+              for (i = 0; i < grp_num; i++) {
-+                  if (files[count]->s.st_gid == grp_list[i] &&
-+                      files[count]->s.st_mode & 0400)
-+                      files[count]->r = 1;
-+              }
-+          }
-       }
-     }
-     closedir(dir);
-diff -urp webfs-1.21-orig/webfsd.c webfs-1.21/webfsd.c
---- webfs-1.21-orig/webfsd.c   2004-06-10 05:45:50.000000000 -0400
-+++ webfs-1.21/webfsd.c        2010-03-28 10:36:33.992517000 -0400
-@@ -42,8 +42,8 @@ char    *listen_port   = "8000";
- int     virtualhosts   = 0;
- int     canonicalhost  = 0;
- char    server_host[256];
--char    user[17];
--char    group[17];
-+char    *user;
-+char    *group;
- char    *mimetypes     = MIMEFILE;
- char    *pidfile       = NULL;
- char    *logfile       = NULL;
-@@ -57,6 +57,9 @@ int     have_tty       = 1;
- int     max_conn       = 32;
- int     lifespan       = -1;
- int     no_listing     = 0;
-+int     setsupgroups   = 1;
-+gid_t   *grp_list      = NULL;
-+int     grp_num        = 0;
- 
- time_t  now;
- int     slisten;
-@@ -167,6 +170,7 @@ usage(char *name)
-       gr = getgrgid(getgid());
-       fprintf(stderr,
-               "  -u user  run as user >user<                  [%s]\n"
-+              "  -G       set supplementary group list to empty\n"
-               "  -g group run as group >group<                [%s]\n",
-               pw ? pw->pw_name : "???",
-               gr ? gr->gr_name : "???");
-@@ -189,6 +193,7 @@ fix_ug(void)
- {
-     struct passwd  *pw = NULL;
-     struct group   *gr = NULL;
-+    int numgroupsmax, i;
-     
-     /* root is allowed to use any uid/gid,
-      * others will get their real uid/gid */
-@@ -214,6 +219,20 @@ fix_ug(void)
-       exit(1);
-     }
- 
-+    /* get supplementary groups */
-+    if (setsupgroups) {
-+        numgroupsmax = sysconf(_SC_NGROUPS_MAX) + 1;
-+        grp_list = (gid_t*) malloc(numgroupsmax * sizeof(gid_t));
-+
-+      if (grp_list != NULL) {
-+            grp_num = getgrouplist(pw->pw_name, pw->pw_gid,
-+                                      grp_list, &numgroupsmax);
-+        } else {
-+            xerror(LOG_ERR, "failed to get group list - "
-+                       "removing all sup groups", NULL);
-+        }
-+    }
-+
-     /* chroot to $DOCUMENT_ROOT (must be done here as getpwuid needs
-        /etc and chroot works as root only) */
-     if (do_chroot) {
-@@ -227,14 +246,22 @@ fix_ug(void)
-     /* set group */
-     if (getegid() != gr->gr_gid || getgid() != gr->gr_gid) {
-       setgid(gr->gr_gid);
--      setgroups(0, NULL);
-     }
-     if (getegid() != gr->gr_gid || getgid() != gr->gr_gid) {
-       xerror(LOG_ERR,"setgid failed",NULL);
-       exit(1);
-     }
--    strncpy(group,gr->gr_name,16);
-+    
-+    if (strlen(gr->gr_name) < sysconf(_SC_LOGIN_NAME_MAX))
-+        strcpy(group,gr->gr_name);
-+    else
-+        xerror(LOG_ERR,"groupname too long",NULL);
- 
-+    /* set supplementary groups */
-+    if (geteuid() == 0)
-+        if (setgroups(grp_num, grp_list) != 0)
-+            xerror(LOG_ERR, "failed to set supplementary groups", NULL);
-+    
-     /* set user */
-     if (geteuid() != pw->pw_uid || getuid() != pw->pw_uid)
-       setuid(pw->pw_uid);
-@@ -242,11 +269,23 @@ fix_ug(void)
-       xerror(LOG_ERR,"setuid failed",NULL);
-       exit(1);
-     }
--    strncpy(user,pw->pw_name,16);
--
--    if (debug)
--      fprintf(stderr,"fix_ug: uid=%d euid=%d / gid=%d egid=%d\n",
-+    
-+    if (strlen(pw->pw_name) < sysconf(_SC_LOGIN_NAME_MAX))
-+        strcpy(user,pw->pw_name);
-+    else
-+        xerror(LOG_ERR,"username too long",NULL);
-+    
-+    if (debug) {
-+      fprintf(stderr,"fix_ug: uid=%d euid=%d / gid=%d egid=%d / gids: ",
-               getuid(),geteuid(),getgid(),getegid());
-+
-+      for (i = 0; i < grp_num; i++) {
-+              fprintf(stderr, "%d ", grp_list[i]);
-+      }
-+
-+      fprintf(stderr, "\n");
-+    }
-+
- }
- 
- /* ---------------------------------------------------------------------- */
-@@ -687,6 +726,10 @@ main(int argc, char *argv[])
-     char serv[16];
-     char mypid[12];
- 
-+    /* allocate space for user/group names. _SC_LOGIN_NAME_MAX includes \0 */
-+    user  = (char *)malloc(sizeof(char) * sysconf(_SC_LOGIN_NAME_MAX));
-+    group = (char *)malloc(sizeof(char) * sysconf(_SC_LOGIN_NAME_MAX));
-+
-     uid  = getuid();
-     euid = geteuid();
-     if (uid != euid)
-@@ -702,7 +745,7 @@ main(int argc, char *argv[])
-     /* parse options */
-     for (;;) {
-       if (-1 == (c = getopt(argc,argv,"hvsdF46jS"
--                            
"r:R:f:p:n:N:i:t:c:a:u:g:l:L:m:y:b:k:e:x:C:P:~:")))
-+                            
"r:R:f:p:n:N:i:t:c:a:u:Gg:l:L:m:y:b:k:e:x:C:P:~:")))
-           break;
-       switch (c) {
-       case 'h':
-@@ -759,10 +802,19 @@ main(int argc, char *argv[])
-           max_dircache = atoi(optarg);
-           break;
-       case 'u':
--          strncpy(user,optarg,16);
-+          if (strlen(optarg) < sysconf(_SC_LOGIN_NAME_MAX))
-+              strcpy(user,optarg);
-+          else
-+                xerror(LOG_ERR,"username too long",NULL);
-+          break;
-+      case 'G':
-+          setsupgroups = 0;
-           break;
-       case 'g':
--          strncpy(group,optarg,16);
-+          if (strlen(optarg) < sysconf(_SC_LOGIN_NAME_MAX))
-+              strcpy(group,optarg);
-+          else
-+                xerror(LOG_ERR,"groupname too long",NULL);
-           break;
-       case 'L':
-           flushlog = 1;
-diff -urp webfs-1.21-orig/webfsd.man webfs-1.21/webfsd.man
---- webfs-1.21-orig/webfsd.man 2004-06-08 08:52:02.000000000 -0400
-+++ webfs-1.21/webfsd.man      2010-03-28 10:37:09.495798000 -0400
-@@ -95,6 +95,9 @@ Use >file< as pidfile.
- Set \fBu\fPid to >user< (after binding to the tcp port).  This
- option is allowed for root only.
- .TP
-+.B -G
-+Set the supplementary group list to empty.
-+.TP
- .B -g group
- Set \fBg\fPid to >group< (after binding to the tcp port).  This
- option is allowed for root only.
-
-

Copied: webfs/repos/community-x86_64/webfs.patch (from rev 1348970, 
webfs/trunk/webfs.patch)
===================================================================
--- webfs.patch                         (rev 0)
+++ webfs.patch 2022-11-15 20:06:11 UTC (rev 1348971)
@@ -0,0 +1,250 @@
+# This patch performs the following:
+#
+# 1) user/group names my now be set to the system maximum using
+#    sysconf(_SC_LOGIN_NAME_MAX). They were previously hardcoded to 16 chars.
+#
+# 2) supplementary groups are now set according to the user webfs is running 
as.
+#    previously they were left as the calling user, which could be dangerous
+#    ex: sudo webfsd -u nobody, would leave webfsd with all of root's groups!
+#
+# 3) the supplementary group list is no longer made empty when using -g
+#
+# 4) supplementary groups are now checked for read access when generating
+#    directory listings
+#
+# 5) in ls.c/ls() changed type of uid and gid to uid_t and gid_t
+#
+# 6) in ls.c/ls() fixed a problem where the uid of the file was being compared
+#    to the gid of the user to check for readability
+#
+# 7) added a -G option to ignore/remove all supplementary groups
+#
+# 8) updated man page to reflect -G option
+#
+# 9) when the uid is 0, all files are now displayed as readable.
+#
+
+diff -urp webfs-1.21-orig/httpd.h webfs-1.21/httpd.h
+--- webfs-1.21-orig/httpd.h    2004-06-10 05:45:50.000000000 -0400
++++ webfs-1.21/httpd.h 2010-03-27 14:57:07.631540000 -0400
+@@ -169,6 +169,8 @@ extern int    lifespan;
+ extern int    no_listing;
+ extern time_t now;
+ extern int     have_tty;
++extern gid_t  *grp_list;
++extern int    grp_num;
+ 
+ #ifdef USE_SSL
+ extern int      with_ssl;
+diff -urp webfs-1.21-orig/ls.c webfs-1.21/ls.c
+--- webfs-1.21-orig/ls.c       2004-06-10 05:45:50.000000000 -0400
++++ webfs-1.21/ls.c    2010-03-28 10:52:09.449259926 -0400
+@@ -194,7 +194,9 @@ ls(time_t now, char *hostname, char *fil
+     struct myfile  **files = NULL;
+     struct myfile  **re1;
+     char           *h1,*h2,*re2,*buf = NULL;
+-    int            count,len,size,i,uid,gid;
++    int            count,len,size,i;
++    uid_t          uid;
++    gid_t          gid;
+     char           line[1024];
+     char           *pw = NULL, *gr = NULL;
+ 
+@@ -241,14 +243,23 @@ ls(time_t now, char *hostname, char *fil
+       files[count]->r = 0;
+       if (S_ISDIR(files[count]->s.st_mode) ||
+           S_ISREG(files[count]->s.st_mode)) {
+-          if (files[count]->s.st_uid == uid &&
++          if (uid == 0)
++              files[count]->r = 1;
++          else if (files[count]->s.st_uid == uid &&
+               files[count]->s.st_mode & 0400)
+               files[count]->r = 1;
+-          else if (files[count]->s.st_uid == gid &&
++          else if (files[count]->s.st_gid == gid &&
+                    files[count]->s.st_mode & 0040)
+-              files[count]->r = 1; /* FIXME: check additional groups */
++              files[count]->r = 1;
+           else if (files[count]->s.st_mode & 0004)
+               files[count]->r = 1;
++          else {
++              for (i = 0; i < grp_num; i++) {
++                  if (files[count]->s.st_gid == grp_list[i] &&
++                      files[count]->s.st_mode & 0400)
++                      files[count]->r = 1;
++              }
++          }
+       }
+     }
+     closedir(dir);
+diff -urp webfs-1.21-orig/webfsd.c webfs-1.21/webfsd.c
+--- webfs-1.21-orig/webfsd.c   2004-06-10 05:45:50.000000000 -0400
++++ webfs-1.21/webfsd.c        2010-03-28 10:36:33.992517000 -0400
+@@ -42,8 +42,8 @@ char    *listen_port   = "8000";
+ int     virtualhosts   = 0;
+ int     canonicalhost  = 0;
+ char    server_host[256];
+-char    user[17];
+-char    group[17];
++char    *user;
++char    *group;
+ char    *mimetypes     = MIMEFILE;
+ char    *pidfile       = NULL;
+ char    *logfile       = NULL;
+@@ -57,6 +57,9 @@ int     have_tty       = 1;
+ int     max_conn       = 32;
+ int     lifespan       = -1;
+ int     no_listing     = 0;
++int     setsupgroups   = 1;
++gid_t   *grp_list      = NULL;
++int     grp_num        = 0;
+ 
+ time_t  now;
+ int     slisten;
+@@ -167,6 +170,7 @@ usage(char *name)
+       gr = getgrgid(getgid());
+       fprintf(stderr,
+               "  -u user  run as user >user<                  [%s]\n"
++              "  -G       set supplementary group list to empty\n"
+               "  -g group run as group >group<                [%s]\n",
+               pw ? pw->pw_name : "???",
+               gr ? gr->gr_name : "???");
+@@ -189,6 +193,7 @@ fix_ug(void)
+ {
+     struct passwd  *pw = NULL;
+     struct group   *gr = NULL;
++    int numgroupsmax, i;
+     
+     /* root is allowed to use any uid/gid,
+      * others will get their real uid/gid */
+@@ -214,6 +219,20 @@ fix_ug(void)
+       exit(1);
+     }
+ 
++    /* get supplementary groups */
++    if (setsupgroups) {
++        numgroupsmax = sysconf(_SC_NGROUPS_MAX) + 1;
++        grp_list = (gid_t*) malloc(numgroupsmax * sizeof(gid_t));
++
++      if (grp_list != NULL) {
++            grp_num = getgrouplist(pw->pw_name, pw->pw_gid,
++                                      grp_list, &numgroupsmax);
++        } else {
++            xerror(LOG_ERR, "failed to get group list - "
++                       "removing all sup groups", NULL);
++        }
++    }
++
+     /* chroot to $DOCUMENT_ROOT (must be done here as getpwuid needs
+        /etc and chroot works as root only) */
+     if (do_chroot) {
+@@ -227,14 +246,22 @@ fix_ug(void)
+     /* set group */
+     if (getegid() != gr->gr_gid || getgid() != gr->gr_gid) {
+       setgid(gr->gr_gid);
+-      setgroups(0, NULL);
+     }
+     if (getegid() != gr->gr_gid || getgid() != gr->gr_gid) {
+       xerror(LOG_ERR,"setgid failed",NULL);
+       exit(1);
+     }
+-    strncpy(group,gr->gr_name,16);
++    
++    if (strlen(gr->gr_name) < sysconf(_SC_LOGIN_NAME_MAX))
++        strcpy(group,gr->gr_name);
++    else
++        xerror(LOG_ERR,"groupname too long",NULL);
+ 
++    /* set supplementary groups */
++    if (geteuid() == 0)
++        if (setgroups(grp_num, grp_list) != 0)
++            xerror(LOG_ERR, "failed to set supplementary groups", NULL);
++    
+     /* set user */
+     if (geteuid() != pw->pw_uid || getuid() != pw->pw_uid)
+       setuid(pw->pw_uid);
+@@ -242,11 +269,23 @@ fix_ug(void)
+       xerror(LOG_ERR,"setuid failed",NULL);
+       exit(1);
+     }
+-    strncpy(user,pw->pw_name,16);
+-
+-    if (debug)
+-      fprintf(stderr,"fix_ug: uid=%d euid=%d / gid=%d egid=%d\n",
++    
++    if (strlen(pw->pw_name) < sysconf(_SC_LOGIN_NAME_MAX))
++        strcpy(user,pw->pw_name);
++    else
++        xerror(LOG_ERR,"username too long",NULL);
++    
++    if (debug) {
++      fprintf(stderr,"fix_ug: uid=%d euid=%d / gid=%d egid=%d / gids: ",
+               getuid(),geteuid(),getgid(),getegid());
++
++      for (i = 0; i < grp_num; i++) {
++              fprintf(stderr, "%d ", grp_list[i]);
++      }
++
++      fprintf(stderr, "\n");
++    }
++
+ }
+ 
+ /* ---------------------------------------------------------------------- */
+@@ -687,6 +726,10 @@ main(int argc, char *argv[])
+     char serv[16];
+     char mypid[12];
+ 
++    /* allocate space for user/group names. _SC_LOGIN_NAME_MAX includes \0 */
++    user  = (char *)malloc(sizeof(char) * sysconf(_SC_LOGIN_NAME_MAX));
++    group = (char *)malloc(sizeof(char) * sysconf(_SC_LOGIN_NAME_MAX));
++
+     uid  = getuid();
+     euid = geteuid();
+     if (uid != euid)
+@@ -702,7 +745,7 @@ main(int argc, char *argv[])
+     /* parse options */
+     for (;;) {
+       if (-1 == (c = getopt(argc,argv,"hvsdF46jS"
+-                            
"r:R:f:p:n:N:i:t:c:a:u:g:l:L:m:y:b:k:e:x:C:P:~:")))
++                            
"r:R:f:p:n:N:i:t:c:a:u:Gg:l:L:m:y:b:k:e:x:C:P:~:")))
+           break;
+       switch (c) {
+       case 'h':
+@@ -759,10 +802,19 @@ main(int argc, char *argv[])
+           max_dircache = atoi(optarg);
+           break;
+       case 'u':
+-          strncpy(user,optarg,16);
++          if (strlen(optarg) < sysconf(_SC_LOGIN_NAME_MAX))
++              strcpy(user,optarg);
++          else
++                xerror(LOG_ERR,"username too long",NULL);
++          break;
++      case 'G':
++          setsupgroups = 0;
+           break;
+       case 'g':
+-          strncpy(group,optarg,16);
++          if (strlen(optarg) < sysconf(_SC_LOGIN_NAME_MAX))
++              strcpy(group,optarg);
++          else
++                xerror(LOG_ERR,"groupname too long",NULL);
+           break;
+       case 'L':
+           flushlog = 1;
+diff -urp webfs-1.21-orig/webfsd.man webfs-1.21/webfsd.man
+--- webfs-1.21-orig/webfsd.man 2004-06-08 08:52:02.000000000 -0400
++++ webfs-1.21/webfsd.man      2010-03-28 10:37:09.495798000 -0400
+@@ -95,6 +95,9 @@ Use >file< as pidfile.
+ Set \fBu\fPid to >user< (after binding to the tcp port).  This
+ option is allowed for root only.
+ .TP
++.B -G
++Set the supplementary group list to empty.
++.TP
+ .B -g group
+ Set \fBg\fPid to >group< (after binding to the tcp port).  This
+ option is allowed for root only.
+
+

Deleted: webfsd.conf
===================================================================
--- webfsd.conf 2022-11-15 20:05:39 UTC (rev 1348970)
+++ webfsd.conf 2022-11-15 20:06:11 UTC (rev 1348971)
@@ -1,5 +0,0 @@
-#
-# Parameters passed to webfsd(1)
-#
-
-WEBFSD_ARGS="-p 8080 -u nobody -R /var/www/htdocs -f index.html"

Copied: webfs/repos/community-x86_64/webfsd.conf (from rev 1348970, 
webfs/trunk/webfsd.conf)
===================================================================
--- webfsd.conf                         (rev 0)
+++ webfsd.conf 2022-11-15 20:06:11 UTC (rev 1348971)
@@ -0,0 +1,5 @@
+#
+# Parameters passed to webfsd(1)
+#
+
+WEBFSD_ARGS="-p 8080 -u nobody -R /var/www/htdocs -f index.html"

Deleted: webfsd.service
===================================================================
--- webfsd.service      2022-11-15 20:05:39 UTC (rev 1348970)
+++ webfsd.service      2022-11-15 20:06:11 UTC (rev 1348971)
@@ -1,11 +0,0 @@
-[Unit]
-Description=Simple and instant http server.
-Documentation=man:webfsd(1)
-After=network.target
-
-[Service]
-EnvironmentFile=/etc/conf.d/webfsd
-ExecStart=/usr/bin/webfsd $WEBFSD_ARGS -F
-
-[Install]
-WantedBy=multi-user.target

Copied: webfs/repos/community-x86_64/webfsd.service (from rev 1348970, 
webfs/trunk/webfsd.service)
===================================================================
--- webfsd.service                              (rev 0)
+++ webfsd.service      2022-11-15 20:06:11 UTC (rev 1348971)
@@ -0,0 +1,11 @@
+[Unit]
+Description=Simple and instant http server.
+Documentation=man:webfsd(1)
+After=network.target
+
+[Service]
+EnvironmentFile=/etc/conf.d/webfsd
+ExecStart=/usr/bin/webfsd $WEBFSD_ARGS -F
+
+[Install]
+WantedBy=multi-user.target

Reply via email to