[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Freeze exception for webauth 3.7.1-2



Hi all,

Yesterday, we discovered a serious brown-paper-bag bug in WebAuth 3.7.1
introduced in 3.7.0 that rendered the wa_keyring utility unusable.  I've
pulled up the specific fix for this problem and have just uploaded 3.7.1-2
targetted at squeeze.  Could you unblock it?

(The new upstream 3.7.2 release went into experimental and will go into
unstable after the release.)

Here is the complete diff:

diff --git a/debian/changelog b/debian/changelog
index 6f2e9b6..87e02c9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+webauth (3.7.1-2) unstable; urgency=low
+
+  * Apply upstream deltas:
+    - [49ad22d2] Fix wa_keyring option parsing and verbose mode bugs
+  * Update standards version to 3.9.1 (no changes required).
+
+ -- Russ Allbery <rra@debian.org>  Thu, 12 Aug 2010 15:37:53 -0700
+
 webauth (3.7.1-1) unstable; urgency=low
 
   * New upstream release.
diff --git a/debian/control b/debian/control
index 686736a..282af91 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,7 @@ Build-Depends: debhelper (>> 7), apache2-threaded-dev (>= 2.2),
  libcgi-fast-perl, libcurl4-openssl-dev, libhtml-template-perl,
  libkrb5-dev, libldap2-dev, libssl-dev, liburi-perl, libwww-perl,
  libxml-parser-perl, perl
-Standards-Version: 3.9.0
+Standards-Version: 3.9.1
 Homepage: http://webauth.stanford.edu/
 Vcs-Git: git://git.eyrie.org/kerberos/webauth.git
 Vcs-Browser: http://git.eyrie.org/?p=kerberos/webauth.git
diff --git a/tools/wa_keyring.c b/tools/wa_keyring.c
index b102cd9..6c1e1c1 100644
--- a/tools/wa_keyring.c
+++ b/tools/wa_keyring.c
@@ -372,7 +372,7 @@ int
 main(int argc, char **argv)
 {
     int option;
-    bool verbose;
+    bool verbose = false;
     unsigned long id;
     long offset;
     char *end;
@@ -380,7 +380,13 @@ main(int argc, char **argv)
     const char *command = "list";
 
     message_program_name = argv[0];
-    while ((option = getopt(argc, argv, "f:hv")) != EOF) {
+
+    /*
+     * The + tells GNU getopt to stop option parsing at the first non-argument
+     * rather than proceeding on to find options anywhere.  This allows easier
+     * specification of negative time offsets.
+     */
+    while ((option = getopt(argc, argv, "+f:hv")) != EOF) {
         switch (option) {
         case 'f':
             keyring = optarg;
@@ -391,6 +397,8 @@ main(int argc, char **argv)
         case 'v':
             verbose = true;
             break;
+        case '+':
+            fprintf(stderr, "%s: invalid option -- +\n", argv[0]);
         default:
             usage(1);
             break;
@@ -402,6 +410,7 @@ main(int argc, char **argv)
         usage(1);
     if (argc > 0) {
         command = argv[0];
+        argc--;
         argv++;
     }

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>


Reply to: