Hello community,

here is the log from the commit of package linuxrc for openSUSE:Factory checked 
in at 2017-04-18 13:47:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/linuxrc (Old)
 and      /work/SRC/openSUSE:Factory/.linuxrc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "linuxrc"

Tue Apr 18 13:47:33 2017 rev:238 rq:487800 version:5.0.100

Changes:
--------
--- /work/SRC/openSUSE:Factory/linuxrc/linuxrc.changes  2017-02-14 
00:38:40.192665621 +0100
+++ /work/SRC/openSUSE:Factory/.linuxrc.new/linuxrc.changes     2017-04-18 
13:47:35.590292251 +0200
@@ -0,0 +1,7 @@
+--------------------------------------------------------------------
+Thu Apr 13 09:39:07 UTC 2017 - [email protected]
+
+- merge gh#openSUSE/linuxrc#137
+- fix segfault when loading installer (bsc#1033441)
+- 5.0.100
+

Old:
----
  linuxrc-5.0.99.tar.xz

New:
----
  linuxrc-5.0.100.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ linuxrc.spec ++++++
--- /var/tmp/diff_new_pack.V70Gji/_old  2017-04-18 13:47:36.290193188 +0200
+++ /var/tmp/diff_new_pack.V70Gji/_new  2017-04-18 13:47:36.290193188 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           linuxrc
-Version:        5.0.99
+Version:        5.0.100
 Release:        0
 Summary:        SUSE Installation Program
 License:        GPL-3.0+

++++++ linuxrc-5.0.99.tar.xz -> linuxrc-5.0.100.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-5.0.99/VERSION new/linuxrc-5.0.100/VERSION
--- old/linuxrc-5.0.99/VERSION  2017-02-10 11:18:01.000000000 +0100
+++ new/linuxrc-5.0.100/VERSION 2017-04-13 11:39:07.000000000 +0200
@@ -1 +1 @@
-5.0.99
+5.0.100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-5.0.99/changelog 
new/linuxrc-5.0.100/changelog
--- old/linuxrc-5.0.99/changelog        2017-02-10 11:18:01.000000000 +0100
+++ new/linuxrc-5.0.100/changelog       2017-04-13 11:39:07.000000000 +0200
@@ -1,3 +1,6 @@
+2017-04-13:    5.0.100
+       - fix segfault when loading installer (bsc #1033441)
+
 2017-02-09:    5.0.99
        - avoid segfault when image files are missing
        - match only file name, not path when checking digests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-5.0.99/display.c 
new/linuxrc-5.0.100/display.c
--- old/linuxrc-5.0.99/display.c        2017-02-10 11:18:01.000000000 +0100
+++ new/linuxrc-5.0.100/display.c       2017-04-13 11:39:07.000000000 +0200
@@ -314,6 +314,14 @@
 }
 
 
+/*
+ * Save window area.
+ *
+ * You can restore the window area later by calling disp_restore_area().
+ *
+ * Note: it is a programming error to call disp_save_area() two times in a
+ * row without disp_restore_area() in between.
+ */
 void disp_save_area(window_t *win)
 {
   int i, x_len, y_len;
@@ -332,10 +340,14 @@
 
   if(y_len + win->y_left > max_y_ig) y_len = max_y_ig - win->y_left + 1;
 
-//  log_info("save area at %d x %d (size %d x %d)\n", win->x_left, 
win->y_left, x_len, y_len);
+  log_debug("save area %p at %d x %d (size %d x %d)\n", win, win->x_left, 
win->y_left, x_len, y_len);
 
 //  dump_screen("save area, start");
 
+  if(win->save_area) {
+    log_info("Warning: save area already in use!");
+  }
+
   win->save_area = malloc(sizeof (character_t *) * y_len);
 
   for(i = 0; i < y_len; i++) {
@@ -351,6 +363,13 @@
 }
 
 
+/*
+ * Restore saved window area.
+ *
+ * Note: it is actually allowed to call this function without a prior
+ * disp_save_area(). It will do nothing in this case.
+ *
+ */
 void disp_restore_area(window_t *win)
 {
   int x, x_len;
@@ -373,6 +392,13 @@
   if(x_len + win->x_left > max_x_ig) x_len = max_x_ig - win->x_left + 1;
   if(y_len + win->y_left > max_y_ig) y_len = max_y_ig - win->y_left + 1;
 
+  log_debug("restore area %p at %d x %d (size %d x %d)\n", win, win->x_left, 
win->y_left, x_len, y_len);
+
+  if(!win->save_area) {
+    log_debug("Warning: restore area not initialized!");
+    return;
+  }
+
   for(y = 0; y < y_len; y++) {
     disp_gotoxy(win->x_left, win->y_left + y);
     for(x = 0; x < x_len;) {
@@ -385,6 +411,8 @@
   for(y = 0; y < y_len; y++) free(win->save_area[y]);
   free(win->save_area);
 
+  win->save_area = NULL;
+
   disp_set_attr(save_attr);
 }
 
@@ -394,6 +422,9 @@
   window_t tmp_win;
 
   tmp_win = *win;
+  /* we must not copy .save_area as it's modified by disp_{save,restore}_area 
*/
+  tmp_win.save_area = NULL;
+
   disp_save_area(&tmp_win);
   disp_restore_area(&tmp_win);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/linuxrc-5.0.99/url.c new/linuxrc-5.0.100/url.c
--- old/linuxrc-5.0.99/url.c    2017-02-10 11:18:01.000000000 +0100
+++ new/linuxrc-5.0.100/url.c   2017-04-13 11:39:07.000000000 +0200
@@ -935,6 +935,8 @@
  * return:
  *   0: ok
  *   1: abort download
+ *
+ * Note: it's possible that 'done' follows 'init' without any 'update' in 
between.
  */
 int url_progress(url_data_t *url_data, int stage)
 {


Reply via email to