]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
This makes encrypt() parser more strict.
authorBruce Momjian <bruce@momjian.us>
Thu, 6 Sep 2001 03:21:39 +0000 (03:21 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 6 Sep 2001 03:21:39 +0000 (03:21 +0000)
Marko Kreen

contrib/pgcrypto/px.c

index b3981be93ce41f25b374ab7581e82a4786463d7e..9c18f6f250e41cb2ad25ce1a5779a26238be6fb8 100644 (file)
@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: px.c,v 1.1 2001/08/21 01:32:01 momjian Exp $
+ * $Id: px.c,v 1.2 2001/09/06 03:21:39 momjian Exp $
  */
 
 #include <postgres.h>
@@ -208,7 +208,7 @@ combo_free(PX_Combo *cx)
 
 /* PARSER */
 
-static void
+static int
 parse_cipher_name(char *full, char **cipher, char **pad)
 {
        char *p, *p2, *q;
@@ -229,14 +229,16 @@ parse_cipher_name(char *full, char **cipher, char **pad)
                p2 = strchr(p, ':');
                if (p2 != NULL) {
                        *p2++ = 0;
-                       if (!strcmp(p, "pad")) {
+                       if (!strcmp(p, "pad"))
                                *pad = p2;
-                       } else {
-                               elog(ERROR, "Unknown component: '%s'", p);
-                       }
-               }
+                       else
+                               return -1;
+               } else
+                       return -1;
+               
                p = q;
        }
+       return 0;
 }
 
 /* provider */
@@ -255,11 +257,11 @@ px_find_combo(const char *name, PX_Combo **res)
        buf = px_alloc(strlen(name) + 1);
        strcpy(buf, name);
 
-       parse_cipher_name(buf, &s_cipher, &s_pad);
-       if (s_cipher == NULL) {
+       err = parse_cipher_name(buf, &s_cipher, &s_pad);
+       if (err) {
                px_free(buf);
                px_free(cx);
-               return -1;
+               return err;
        }
 
        err = px_find_cipher(s_cipher, &cx->cipher);