monotone-commits-diffs
[Top][All Lists]
Advanced

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

[Monotone-commits-diffs] net.venge.monotone: ab18e9a864450dfdaa39afe2ed


From: code
Subject: [Monotone-commits-diffs] net.venge.monotone: ab18e9a864450dfdaa39afe2ed12b1092794ea0c
Date: Sat, 5 Feb 2011 23:37:08 GMT

revision:            ab18e9a864450dfdaa39afe2ed12b1092794ea0c
date:                2011-02-05T23:36:24
author:              address@hidden
branch:              net.venge.monotone
changelog:
* src/database.cc (add_prefix_matching_constraint): verify if the
  incoming prefix looks like a partial hex-encoded identifier at
  all, otherwise the hex decoding might fail with a rather ugly
  error message (fixes issue 143)
* test/func/select_partial_id/__driver__.lua: the prefix is not
  lowercase as expected
* NEWS: note the bugfix

manifest:
format_version "1"

new_manifest [7ba06a58adb227e86d971cbab622a05e26099ebc]

old_revision [00973167fdf1a4285319a75fc68857f7cad378b2]

patch "NEWS"
 from [816c8281092cdc5fa5d9d0b7c345da5b53ce33da]
   to [a68115463e161bf4991b5ab5e2f81f807ac546c7]

patch "src/database.cc"
 from [ade943af074000527e1f1f34d8afb0ad0f8a2bc9]
   to [8966518247a144a25de01b4ab8fa9e515661edfb]

patch "test/func/select_partial_id/__driver__.lua"
 from [15acaeb3ac1e08531f10adf3db640ae1d8579e86]
   to [3873488a56c7a0499730154c73782a043c6f377e]
============================================================
--- NEWS	816c8281092cdc5fa5d9d0b7c345da5b53ce33da
+++ NEWS	a68115463e161bf4991b5ab5e2f81f807ac546c7
@@ -94,6 +94,10 @@ XXX XXX XX XX:XX:XX UTC 2010
           by default accept files ending with both, ".mtn" and ".db".
           (fixes monotone issue 128)
 
+        - monotone gives now a proper error message when an incomplete
+          or partial identifier contains non-hex digits
+          (fixes monotone issue 143)
+
         Internal
 
         - The source tree has been reorganized. Sources, tests and documentation
============================================================
--- src/database.cc	ade943af074000527e1f1f34d8afb0ad0f8a2bc9
+++ src/database.cc	8966518247a144a25de01b4ab8fa9e515661edfb
@@ -66,6 +66,7 @@
 #include "lua_hooks.hh"
 #include "outdated_indicator.hh"
 #include "lru_writeback_cache.hh"
+#include "char_classifiers.hh"
 
 // defined in schema.c, generated from schema.sql:
 extern char const schema_constant[];
@@ -4223,6 +4224,12 @@ database_impl::add_prefix_matching_const
     q.sql_cmd += "0"; // always false
   else
     {
+      for (string::const_iterator i = prefix.begin(); i != prefix.end(); ++i)
+       {
+         E(is_xdigit(*i), origin::user,
+           F("bad character '%c' in id name '%s'") % *i % prefix);
+       }
+
       string lower_hex = prefix;
       if (lower_hex.size() < constants::idlen)
         lower_hex.append(constants::idlen - lower_hex.size(), '0');
@@ -4498,7 +4505,7 @@ database::get_var(var_key const & key, v
 database::get_var(var_key const & key, var_value & value)
 {
   results res;
-  imp->fetch(res, one_col, any_rows, 
+  imp->fetch(res, one_col, any_rows,
              query("SELECT value FROM db_vars "
                    "WHERE domain = ? AND name = ?")
                    % text(key.first())
============================================================
--- test/func/select_partial_id/__driver__.lua	15acaeb3ac1e08531f10adf3db640ae1d8579e86
+++ test/func/select_partial_id/__driver__.lua	3873488a56c7a0499730154c73782a043c6f377e
@@ -11,4 +11,4 @@ check(mtn("automate", "select", "p:abTcd
 
 -- also check that invalid hex digits in partial ids lead to a proper error message
 check(mtn("automate", "select", "p:abTcd"), 1, false, true)
-check(qgrep("bad character 't' in id name 'abtcd'", "stderr"))
+check(qgrep("bad character 'T' in id name 'abTcd'", "stderr"))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]