tags 403849 + patch
thanks

Hi,

Attached is the diff for my bazaar 1.4.2-5.3 NMU, currently in DELAYED/5-day.
diff -u bazaar-1.4.2/debian/patches/06_neon26.dpatch bazaar-1.4.2/debian/patches/06_neon26.dpatch
--- bazaar-1.4.2/debian/patches/06_neon26.dpatch
+++ bazaar-1.4.2/debian/patches/06_neon26.dpatch
@@ -1,13 +1,98 @@
 #! /bin/sh /usr/share/dpatch/dpatch-run
 ## 06_neon26.dpatch by Clint Adams <[EMAIL PROTECTED]>
+## Updated by Steinar H. Gunderson <[EMAIL PROTECTED]>
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: No description.
 
 @DPATCH@
+diff -urNad bazaar-1.4.2~/src/baz/libarch/pfs-dav.c bazaar-1.4.2/src/baz/libarch/pfs-dav.c
+--- bazaar-1.4.2~/src/baz/libarch/pfs-dav.c	2006-12-22 13:57:17.000000000 +0100
++++ bazaar-1.4.2/src/baz/libarch/pfs-dav.c	2006-12-22 13:58:41.000000000 +0100
+@@ -97,13 +97,13 @@
+ static int dav_is_dir (struct arch_pfs_dav_session * pfs, char * dir);
+ static int pfs_rmdir (struct arch_pfs_session * p, t_uchar * path, int soft_errors);
+ static int pfs_rm (struct arch_pfs_session * p, t_uchar * path, int soft_errors);
+-static void dav_is_dir_results (void * userdata, const char * uri, const ne_prop_result_set * set);
++static void dav_is_dir_results (void * userdata, const ne_uri * uri, const ne_prop_result_set * set);
+ static int dav_client_cwd (struct arch_pfs_dav_session * pfs, t_uchar * path, int soft_errors);
+ static int dav_client_auth (void * userdata, const char * realm, int attempt,
+                             char * username, char * password);
+ static t_uchar * abs_path (t_uchar * cwd, t_uchar * path);
+ static t_uchar * dirfold (t_uchar *dir);
+-static void results (void * userdata, const char * uri, const ne_prop_result_set * set);
++static void results (void * userdata, const ne_uri * uri, const ne_prop_result_set * set);
+ 
+ 
+ 
+@@ -815,19 +815,23 @@
+ 
+ 
+ static void
+-dav_is_dir_results (void * userdata, const char * uri, const ne_prop_result_set * set)
++dav_is_dir_results (void * userdata, const ne_uri * uri, const ne_prop_result_set * set)
+ {
+   struct dav_is_dir_ls_data * data = (struct dav_is_dir_ls_data *)userdata;
+   int len;
+ 
++  char *textual_uri = ne_uri_unparse(uri);
++
+   len = str_length (data->uri);
+-  if (!str_cmp_n (uri, len, data->uri, len))
++  if (!str_cmp_n (textual_uri, len, data->uri, len))
+     {
+-      if (uri[str_length (uri) - 1] == '/')
++      if (textual_uri[str_length (textual_uri) - 1] == '/')
+         data->is_dir = 1;
+       else
+         data->is_dir = 0;
+     }
++
++  free(textual_uri);
+ }
+ 
+ static int
+@@ -998,21 +1002,24 @@
+ }
+ 
+ static void
+-results (void * userdata, const char * uri, const ne_prop_result_set * set)
++results (void * userdata, const ne_uri * uri, const ne_prop_result_set * set)
+ {
+   int n;
+   char * file, * tmp;
+   struct ls_data * data = userdata;
++  char * textual_uri = ne_uri_unparse(uri);
+ 
+-  if (str_cmp (data->uri, uri))
++  if (str_cmp (data->uri, textual_uri))
+     {
+-      if (1 == (n = str_length (uri)))
++      if (1 == (n = str_length (textual_uri))) {
++        free(textual_uri);
+         return;
++      }
+ 
+-      if (uri[n - 1] == '/')
++      if (textual_uri[n - 1] == '/')
+         n--;
+ 
+-      file = str_chr_rindex_n (uri, n, '/') + 1;
++      file = str_chr_rindex_n (textual_uri, n, '/') + 1;
+ 
+       n = str_length (file);
+       if (file[n - 1] == '/')
+@@ -1025,6 +1032,7 @@
+       data->files = str_realloc_cat_many (0, data->files, tmp, "\r\n", str_end);
+       free (tmp);
+     }
++  free(textual_uri);
+ }
+ 
+ 
 diff -urNad bazaar-1.4.2~/src/baz/libarch/pfs-sftp.c bazaar-1.4.2/src/baz/libarch/pfs-sftp.c
---- bazaar-1.4.2~/src/baz/libarch/pfs-sftp.c	2005-06-20 17:59:37.000000000 -0400
-+++ bazaar-1.4.2/src/baz/libarch/pfs-sftp.c	2006-12-01 12:58:08.516166732 -0500
+--- bazaar-1.4.2~/src/baz/libarch/pfs-sftp.c	2006-12-22 13:57:17.000000000 +0100
++++ bazaar-1.4.2/src/baz/libarch/pfs-sftp.c	2006-12-22 13:58:17.000000000 +0100
 @@ -1496,7 +1496,7 @@
     */
    arch_uri_heuristics (&parsed_uri);
@@ -18,8 +103,8 @@
    if (parsed_uri.port)
      {
 diff -urNad bazaar-1.4.2~/src/baz/libarch/pfs.c bazaar-1.4.2/src/baz/libarch/pfs.c
---- bazaar-1.4.2~/src/baz/libarch/pfs.c	2006-12-01 12:57:57.022973848 -0500
-+++ bazaar-1.4.2/src/baz/libarch/pfs.c	2006-12-01 12:58:08.520167147 -0500
+--- bazaar-1.4.2~/src/baz/libarch/pfs.c	2006-12-22 13:58:04.000000000 +0100
++++ bazaar-1.4.2/src/baz/libarch/pfs.c	2006-12-22 13:58:17.000000000 +0100
 @@ -514,10 +514,10 @@
      char *at_pos = str_chr_index (parsed_uri->host, '@');
      if (!at_pos)
@@ -36,8 +121,8 @@
  }
  
 diff -urNad bazaar-1.4.2~/src/baz/libarch/tests/unit-sftp.c bazaar-1.4.2/src/baz/libarch/tests/unit-sftp.c
---- bazaar-1.4.2~/src/baz/libarch/tests/unit-sftp.c	2005-06-20 17:59:37.000000000 -0400
-+++ bazaar-1.4.2/src/baz/libarch/tests/unit-sftp.c	2006-12-01 13:00:00.271764380 -0500
+--- bazaar-1.4.2~/src/baz/libarch/tests/unit-sftp.c	2006-12-22 13:57:17.000000000 +0100
++++ bazaar-1.4.2/src/baz/libarch/tests/unit-sftp.c	2006-12-22 13:58:17.000000000 +0100
 @@ -35,7 +35,7 @@
      char *host;
      unsigned int port;
diff -u bazaar-1.4.2/debian/changelog bazaar-1.4.2/debian/changelog
--- bazaar-1.4.2/debian/changelog
+++ bazaar-1.4.2/debian/changelog
@@ -1,3 +1,16 @@
+bazaar (1.4.2-5.3) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * Update 06_neon26.dpatch to work around an API change that was missed
+    earlier; the WebDAV functions no longer give back a char *, but rather an
+    ne_uri *, which is a struct. In the two relevant callback functions, the
+    patch now uses ne_uri_unparse() to convert this struct back to a char *
+    before processing it; it's not the prettiest way, but it works well, and
+    stops segfaulting on "baz ancestry-graph" (used in bzr baz-import-branch),
+    among others. (Closes: #403849)
+
+ -- Steinar H. Gunderson <[EMAIL PROTECTED]>  Fri, 22 Dec 2006 14:09:33 +0100
+
 bazaar (1.4.2-5.2) unstable; urgency=high
 
   * NMU 

Reply via email to