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

Bug#986031: ogmrip crashes on startup with "malloc(): unsorted double linked list corrupted"



Dear Maintainer,
I tried to have a look and the segfault is really a result of the
previous g_param_spec_is_valid_name failures.

It looks like g_param_spec_is_valid_name got tightened lately to
not accept names with dashes anymore.

The following malloc corruption seems to originate in the backtrace below.
There the value pointer neither gets initialised, nor written to,
therefore the free fails.

Attached patch would replace thes "/" by "-" in the parameters
which get accepted by glib2.0.

I assume because of this issue this package is not usable at all,
therefore should be the severity increased?

Kind regards,
Bernhard


export MALLOC_CHECK_=3
(rr) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f11eae17537 in __GI_abort () at abort.c:79
#2  0x00007f11eae70768 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f11eaf7ee2d "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3  0x00007f11eae77a5a in malloc_printerr (str=str@entry=0x7f11eaf7d05a "free(): invalid pointer") at malloc.c:5347
#4  0x00007f11eae79ca6 in free_check (mem=0x55a02d91b8f0, caller=<optimized out>) at hooks.c:255
#5  0x000055a02cd9ac41 in ogmrip_profiles_check_profile (section=0x55a02daae930 "/apps/ogmrip/profiles/default-avi", error=error@entry=0x0) at ogmrip-profiles.c:155
#6  0x000055a02cd9c7bf in ogmrip_profiles_dialog_add_profiles (dialog=dialog@entry=0x55a02d9d4410, reload=reload@entry=0) at ogmrip-profiles-dialog.c:157
#7  0x000055a02cd9d0e5 in ogmrip_profiles_dialog_init (dialog=0x55a02d9d4410) at ogmrip-profiles-dialog.c:733
#8  0x00007f11eb11b391 in g_type_create_instance (type=<optimized out>) at ../../../gobject/gtype.c:1868
#9  0x00007f11eb101615 in g_object_new_internal (class=class@entry=0x55a02d92f430, params=params@entry=0x0, n_params=n_params@entry=0) at ../../../gobject/gobject.c:1939
#10 0x00007f11eb102b1d in g_object_new_with_properties (object_type=94146449298656, n_properties=0, names=names@entry=0x0, values=values@entry=0x0) at ../../../gobject/gobject.c:2107
#11 0x00007f11eb1035f1 in g_object_new (object_type=<optimized out>, first_property_name=first_property_name@entry=0x0) at ../../../gobject/gobject.c:1779
#12 0x000055a02cd9d149 in ogmrip_profiles_dialog_new () at ogmrip-profiles-dialog.c:741
#13 0x000055a02cd8a21d in ogmrip_main_profiles_dialog_construct (data=0x55a02d8a1b20) at ogmrip-main.c:1751
#14 main (argc=<optimized out>, argv=<optimized out>) at ogmrip-main.c:3215
Bug-Debian: https://bugs.debian.org/986031
Last-Update: 2021-04-11

--- ogmrip-1.0.1.orig/libogmrip-gtk/ogmrip-gconf-settings.c
+++ ogmrip-1.0.1/libogmrip-gtk/ogmrip-gconf-settings.c
@@ -63,10 +63,10 @@ my_gconf_concat_dir_and_key (const gchar
 
   strcpy (retval, dir);
 
-  if (dir[dirlen-1] == '/')
+  if (dir[dirlen-1] == '-')
   {
     /* dir ends in slash, strip key slash if needed */
-    if (*key == '/')
+    if (*key == '-')
       ++key;
 
     strcpy (retval + dirlen, key);
@@ -76,9 +76,9 @@ my_gconf_concat_dir_and_key (const gchar
     /* Dir doesn't end in slash, add slash if key lacks one. */
     gchar* dest = retval + dirlen;
 
-    if (*key != '/')
+    if (*key != '-')
     {
-      *dest = '/';
+      *dest = '-';
       ++dest;
     }
       
--- ogmrip-1.0.1.orig/libogmrip-gtk/ogmrip-lavc-options.c
+++ ogmrip-1.0.1/libogmrip-gtk/ogmrip-lavc-options.c
@@ -39,25 +39,25 @@
 #define OGMRIP_IS_LAVC_DIALOG(obj)       (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OGMRIP_TYPE_LAVC_DIALOG))
 #define OGMRIP_IS_LAVC_DIALOG_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((klass), OGMRIP_TYPE_LAVC_DIALOG))
 
-#define OGMRIP_LAVC_KEY_CMP         OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_CMP
-#define OGMRIP_LAVC_KEY_PRECMP      OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_PRECMP
-#define OGMRIP_LAVC_KEY_SUBCMP      OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_SUBCMP
-#define OGMRIP_LAVC_KEY_DIA         OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_DIA
-#define OGMRIP_LAVC_KEY_PREDIA      OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_PREDIA
-#define OGMRIP_LAVC_KEY_KEYINT      OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_KEYINT
-#define OGMRIP_LAVC_KEY_BUF_SIZE    OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_BUF_SIZE
-#define OGMRIP_LAVC_KEY_MIN_RATE    OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_MIN_RATE
-#define OGMRIP_LAVC_KEY_MAX_RATE    OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_MAX_RATE
-#define OGMRIP_LAVC_KEY_STRICT      OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_STRICT
-#define OGMRIP_LAVC_KEY_DC          OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_DC
-#define OGMRIP_LAVC_KEY_MBD         OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_MBD
-#define OGMRIP_LAVC_KEY_QNS         OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_QNS
-#define OGMRIP_LAVC_KEY_VB_STRATEGY OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_VB_STRATEGY
-#define OGMRIP_LAVC_KEY_LAST_PRED   OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_LAST_PRED
-#define OGMRIP_LAVC_KEY_PREME       OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_PREME
-#define OGMRIP_LAVC_KEY_VQCOMP      OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_VQCOMP
-#define OGMRIP_LAVC_KEY_MV0         OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_MV0
-#define OGMRIP_LAVC_KEY_V4MV        OGMRIP_LAVC_SECTION "/" OGMRIP_LAVC_PROP_V4MV
+#define OGMRIP_LAVC_KEY_CMP         OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_CMP
+#define OGMRIP_LAVC_KEY_PRECMP      OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_PRECMP
+#define OGMRIP_LAVC_KEY_SUBCMP      OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_SUBCMP
+#define OGMRIP_LAVC_KEY_DIA         OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_DIA
+#define OGMRIP_LAVC_KEY_PREDIA      OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_PREDIA
+#define OGMRIP_LAVC_KEY_KEYINT      OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_KEYINT
+#define OGMRIP_LAVC_KEY_BUF_SIZE    OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_BUF_SIZE
+#define OGMRIP_LAVC_KEY_MIN_RATE    OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_MIN_RATE
+#define OGMRIP_LAVC_KEY_MAX_RATE    OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_MAX_RATE
+#define OGMRIP_LAVC_KEY_STRICT      OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_STRICT
+#define OGMRIP_LAVC_KEY_DC          OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_DC
+#define OGMRIP_LAVC_KEY_MBD         OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_MBD
+#define OGMRIP_LAVC_KEY_QNS         OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_QNS
+#define OGMRIP_LAVC_KEY_VB_STRATEGY OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_VB_STRATEGY
+#define OGMRIP_LAVC_KEY_LAST_PRED   OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_LAST_PRED
+#define OGMRIP_LAVC_KEY_PREME       OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_PREME
+#define OGMRIP_LAVC_KEY_VQCOMP      OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_VQCOMP
+#define OGMRIP_LAVC_KEY_MV0         OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_MV0
+#define OGMRIP_LAVC_KEY_V4MV        OGMRIP_LAVC_SECTION "-" OGMRIP_LAVC_PROP_V4MV
 
 typedef struct _OGMRipLavcDialog      OGMRipLavcDialog;
 typedef struct _OGMRipLavcDialogClass OGMRipLavcDialogClass;
--- ogmrip-1.0.1.orig/libogmrip-gtk/ogmrip-x264-options.c
+++ ogmrip-1.0.1/libogmrip-gtk/ogmrip-x264-options.c
@@ -41,32 +41,32 @@
 #define OGMRIP_X264_PROP_PROFILE      "profile"
 #define OGMRIP_X264_DEFAULT_PROFILE   OGMRIP_X264_PROFILE_HIGH
 
-#define OGMRIP_X264_KEY_8X8DCT        OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_8X8DCT
-#define OGMRIP_X264_KEY_AUD           OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_AUD
-#define OGMRIP_X264_KEY_BFRAMES       OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_BFRAMES
-#define OGMRIP_X264_KEY_B_ADAPT       OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_B_ADAPT
-#define OGMRIP_X264_KEY_B_PYRAMID     OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_B_PYRAMID
-#define OGMRIP_X264_KEY_BRDO          OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_BRDO
-#define OGMRIP_X264_KEY_CABAC         OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_CABAC
-#define OGMRIP_X264_KEY_CQM           OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_CQM
-#define OGMRIP_X264_KEY_DIRECT        OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_DIRECT
-#define OGMRIP_X264_KEY_FRAMEREF      OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_FRAMEREF
-#define OGMRIP_X264_KEY_GLOBAL_HEADER OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_GLOBAL_HEADER
-#define OGMRIP_X264_KEY_KEYINT        OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_KEYINT
-#define OGMRIP_X264_KEY_LEVEL_IDC     OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_LEVEL_IDC
-#define OGMRIP_X264_KEY_ME            OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_ME
-#define OGMRIP_X264_KEY_MERANGE       OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_MERANGE
-#define OGMRIP_X264_KEY_MIXED_REFS    OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_MIXED_REFS
-#define OGMRIP_X264_KEY_PARTITIONS    OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_PARTITIONS
-#define OGMRIP_X264_KEY_PROFILE       OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_PROFILE
-#define OGMRIP_X264_KEY_PSY_RD        OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_PSY_RD
-#define OGMRIP_X264_KEY_PSY_TRELLIS   OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_PSY_TRELLIS
-#define OGMRIP_X264_KEY_RC_LOOKAHEAD  OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_RC_LOOKAHEAD
-#define OGMRIP_X264_KEY_SUBQ          OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_SUBQ
-#define OGMRIP_X264_KEY_VBV_BUFSIZE   OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_VBV_BUFSIZE
-#define OGMRIP_X264_KEY_VBV_MAXRATE   OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_VBV_MAXRATE
-#define OGMRIP_X264_KEY_WEIGHT_B      OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_WEIGHT_B
-#define OGMRIP_X264_KEY_WEIGHT_P      OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_WEIGHT_P
+#define OGMRIP_X264_KEY_8X8DCT        OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_8X8DCT
+#define OGMRIP_X264_KEY_AUD           OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_AUD
+#define OGMRIP_X264_KEY_BFRAMES       OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_BFRAMES
+#define OGMRIP_X264_KEY_B_ADAPT       OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_B_ADAPT
+#define OGMRIP_X264_KEY_B_PYRAMID     OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_B_PYRAMID
+#define OGMRIP_X264_KEY_BRDO          OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_BRDO
+#define OGMRIP_X264_KEY_CABAC         OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_CABAC
+#define OGMRIP_X264_KEY_CQM           OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_CQM
+#define OGMRIP_X264_KEY_DIRECT        OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_DIRECT
+#define OGMRIP_X264_KEY_FRAMEREF      OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_FRAMEREF
+#define OGMRIP_X264_KEY_GLOBAL_HEADER OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_GLOBAL_HEADER
+#define OGMRIP_X264_KEY_KEYINT        OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_KEYINT
+#define OGMRIP_X264_KEY_LEVEL_IDC     OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_LEVEL_IDC
+#define OGMRIP_X264_KEY_ME            OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_ME
+#define OGMRIP_X264_KEY_MERANGE       OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_MERANGE
+#define OGMRIP_X264_KEY_MIXED_REFS    OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_MIXED_REFS
+#define OGMRIP_X264_KEY_PARTITIONS    OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_PARTITIONS
+#define OGMRIP_X264_KEY_PROFILE       OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_PROFILE
+#define OGMRIP_X264_KEY_PSY_RD        OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_PSY_RD
+#define OGMRIP_X264_KEY_PSY_TRELLIS   OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_PSY_TRELLIS
+#define OGMRIP_X264_KEY_RC_LOOKAHEAD  OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_RC_LOOKAHEAD
+#define OGMRIP_X264_KEY_SUBQ          OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_SUBQ
+#define OGMRIP_X264_KEY_VBV_BUFSIZE   OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_VBV_BUFSIZE
+#define OGMRIP_X264_KEY_VBV_MAXRATE   OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_VBV_MAXRATE
+#define OGMRIP_X264_KEY_WEIGHT_B      OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_WEIGHT_B
+#define OGMRIP_X264_KEY_WEIGHT_P      OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_WEIGHT_P
 
 typedef struct _OGMRipX264Dialog      OGMRipX264Dialog;
 typedef struct _OGMRipX264DialogClass OGMRipX264DialogClass;
@@ -500,7 +500,7 @@ ogmrip_init_options_plugin (void)
   if (settings)
   {
     ogmrip_settings_install_key (settings,
-        g_param_spec_uint (OGMRIP_X264_SECTION "/" OGMRIP_X264_PROP_PROFILE, "Profile property", "Set profile",
+        g_param_spec_uint (OGMRIP_X264_SECTION "-" OGMRIP_X264_PROP_PROFILE, "Profile property", "Set profile",
           OGMRIP_X264_PROFILE_BASELINE, OGMRIP_X264_PROFILE_HIGH, OGMRIP_X264_DEFAULT_PROFILE, G_PARAM_READWRITE));
   }
 
--- ogmrip-1.0.1.orig/libogmrip-gtk/ogmrip-xvid-options.c
+++ ogmrip-1.0.1/libogmrip-gtk/ogmrip-xvid-options.c
@@ -38,32 +38,32 @@
 #define OGMRIP_IS_XVID_DIALOG(obj)       (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OGMRIP_TYPE_XVID_DIALOG))
 #define OGMRIP_IS_XVID_DIALOG_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((klass), OGMRIP_TYPE_XVID_DIALOG))
 
-#define OGMRIP_XVID_KEY_B_ADAPT          OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_B_ADAPT
-#define OGMRIP_XVID_KEY_BFRAMES          OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_BFRAMES
-#define OGMRIP_XVID_KEY_BQUANT_OFFSET    OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_BQUANT_OFFSET
-#define OGMRIP_XVID_KEY_BQUANT_RATIO     OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_BQUANT_RATIO
-#define OGMRIP_XVID_KEY_BVHQ             OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_BVHQ
-#define OGMRIP_XVID_KEY_CHROMA_ME        OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_CHROMA_ME
-#define OGMRIP_XVID_KEY_CHROMA_OPT       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_CHROMA_OPT
-#define OGMRIP_XVID_KEY_CLOSED_GOP       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_CLOSED_GOP
-#define OGMRIP_XVID_KEY_FRAME_DROP_RATIO OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_FRAME_DROP_RATIO
-#define OGMRIP_XVID_KEY_GMC              OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_GMC
-#define OGMRIP_XVID_KEY_INTERLACING      OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_INTERLACING
-#define OGMRIP_XVID_KEY_MAX_BQUANT       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_MAX_BQUANT
-#define OGMRIP_XVID_KEY_MAX_IQUANT       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_MAX_IQUANT
-#define OGMRIP_XVID_KEY_MAX_PQUANT       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_MAX_PQUANT
-#define OGMRIP_XVID_KEY_ME_QUALITY       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_ME_QUALITY
-#define OGMRIP_XVID_KEY_MIN_BQUANT       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_MIN_BQUANT
-#define OGMRIP_XVID_KEY_MIN_IQUANT       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_MIN_IQUANT
-#define OGMRIP_XVID_KEY_MIN_PQUANT       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_MIN_PQUANT
-#define OGMRIP_XVID_KEY_MAX_KEYINT       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_MAX_KEYINT
-#define OGMRIP_XVID_KEY_PACKED           OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_PACKED
-#define OGMRIP_XVID_KEY_PAR_HEIGHT       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_PAR_HEIGHT
-#define OGMRIP_XVID_KEY_PAR              OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_PAR
-#define OGMRIP_XVID_KEY_PAR_WIDTH        OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_PAR_WIDTH
-#define OGMRIP_XVID_KEY_PROFILE          OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_PROFILE
-#define OGMRIP_XVID_KEY_QUANT_TYPE       OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_QUANT_TYPE
-#define OGMRIP_XVID_KEY_VHQ              OGMRIP_XVID_SECTION "/" OGMRIP_XVID_PROP_VHQ
+#define OGMRIP_XVID_KEY_B_ADAPT          OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_B_ADAPT
+#define OGMRIP_XVID_KEY_BFRAMES          OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_BFRAMES
+#define OGMRIP_XVID_KEY_BQUANT_OFFSET    OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_BQUANT_OFFSET
+#define OGMRIP_XVID_KEY_BQUANT_RATIO     OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_BQUANT_RATIO
+#define OGMRIP_XVID_KEY_BVHQ             OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_BVHQ
+#define OGMRIP_XVID_KEY_CHROMA_ME        OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_CHROMA_ME
+#define OGMRIP_XVID_KEY_CHROMA_OPT       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_CHROMA_OPT
+#define OGMRIP_XVID_KEY_CLOSED_GOP       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_CLOSED_GOP
+#define OGMRIP_XVID_KEY_FRAME_DROP_RATIO OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_FRAME_DROP_RATIO
+#define OGMRIP_XVID_KEY_GMC              OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_GMC
+#define OGMRIP_XVID_KEY_INTERLACING      OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_INTERLACING
+#define OGMRIP_XVID_KEY_MAX_BQUANT       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_MAX_BQUANT
+#define OGMRIP_XVID_KEY_MAX_IQUANT       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_MAX_IQUANT
+#define OGMRIP_XVID_KEY_MAX_PQUANT       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_MAX_PQUANT
+#define OGMRIP_XVID_KEY_ME_QUALITY       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_ME_QUALITY
+#define OGMRIP_XVID_KEY_MIN_BQUANT       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_MIN_BQUANT
+#define OGMRIP_XVID_KEY_MIN_IQUANT       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_MIN_IQUANT
+#define OGMRIP_XVID_KEY_MIN_PQUANT       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_MIN_PQUANT
+#define OGMRIP_XVID_KEY_MAX_KEYINT       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_MAX_KEYINT
+#define OGMRIP_XVID_KEY_PACKED           OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_PACKED
+#define OGMRIP_XVID_KEY_PAR_HEIGHT       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_PAR_HEIGHT
+#define OGMRIP_XVID_KEY_PAR              OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_PAR
+#define OGMRIP_XVID_KEY_PAR_WIDTH        OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_PAR_WIDTH
+#define OGMRIP_XVID_KEY_PROFILE          OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_PROFILE
+#define OGMRIP_XVID_KEY_QUANT_TYPE       OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_QUANT_TYPE
+#define OGMRIP_XVID_KEY_VHQ              OGMRIP_XVID_SECTION "-" OGMRIP_XVID_PROP_VHQ
 
 typedef struct _OGMRipXvidDialog      OGMRipXvidDialog;
 typedef struct _OGMRipXvidDialogClass OGMRipXvidDialogClass;
--- ogmrip-1.0.1.orig/src/ogmrip-gconf.h
+++ ogmrip-1.0.1/src/ogmrip-gconf.h
@@ -58,54 +58,54 @@ G_BEGIN_DECLS
 
 #define OGMRIP_GCONF_CONTAINER               "container"
 
-#define OGMRIP_GCONF_CONTAINER_FORMAT        OGMRIP_GCONF_CONTAINER "/format"
-#define OGMRIP_GCONF_CONTAINER_FOURCC        OGMRIP_GCONF_CONTAINER "/fourcc"
-#define OGMRIP_GCONF_CONTAINER_TNUMBER       OGMRIP_GCONF_CONTAINER "/target_number"
-#define OGMRIP_GCONF_CONTAINER_TSIZE         OGMRIP_GCONF_CONTAINER "/target_size"
-#define OGMRIP_GCONF_CONTAINER_ENSURE_SYNC   OGMRIP_GCONF_CONTAINER "/ensure_sync"
+#define OGMRIP_GCONF_CONTAINER_FORMAT        OGMRIP_GCONF_CONTAINER "-format"
+#define OGMRIP_GCONF_CONTAINER_FOURCC        OGMRIP_GCONF_CONTAINER "-fourcc"
+#define OGMRIP_GCONF_CONTAINER_TNUMBER       OGMRIP_GCONF_CONTAINER "-target_number"
+#define OGMRIP_GCONF_CONTAINER_TSIZE         OGMRIP_GCONF_CONTAINER "-target_size"
+#define OGMRIP_GCONF_CONTAINER_ENSURE_SYNC   OGMRIP_GCONF_CONTAINER "-ensure_sync"
 
 #define OGMRIP_GCONF_VIDEO                   "video"
 
-#define OGMRIP_GCONF_VIDEO_CODEC             OGMRIP_GCONF_VIDEO "/codec"
-#define OGMRIP_GCONF_VIDEO_PASSES            OGMRIP_GCONF_VIDEO "/passes"
-#define OGMRIP_GCONF_VIDEO_PRESET            OGMRIP_GCONF_VIDEO "/preset"
-#define OGMRIP_GCONF_VIDEO_SCALER            OGMRIP_GCONF_VIDEO "/scaler"
-#define OGMRIP_GCONF_VIDEO_DENOISE           OGMRIP_GCONF_VIDEO "/denoise"
-#define OGMRIP_GCONF_VIDEO_TRELLIS           OGMRIP_GCONF_VIDEO "/trellis"
-#define OGMRIP_GCONF_VIDEO_QPEL              OGMRIP_GCONF_VIDEO "/qpel"
-#define OGMRIP_GCONF_VIDEO_DEBLOCK           OGMRIP_GCONF_VIDEO "/deblock"
-#define OGMRIP_GCONF_VIDEO_DERING            OGMRIP_GCONF_VIDEO "/dering"
-#define OGMRIP_GCONF_VIDEO_TURBO             OGMRIP_GCONF_VIDEO "/turbo"
-#define OGMRIP_GCONF_VIDEO_ASPECT            OGMRIP_GCONF_VIDEO "/aspect_ratio"
-
-#define OGMRIP_GCONF_VIDEO_ENCODING          OGMRIP_GCONF_VIDEO "/encoding"
-#define OGMRIP_GCONF_VIDEO_BITRATE           OGMRIP_GCONF_VIDEO "/bitrate"
-#define OGMRIP_GCONF_VIDEO_QUANTIZER         OGMRIP_GCONF_VIDEO "/quantizer"
-#define OGMRIP_GCONF_VIDEO_BPP               OGMRIP_GCONF_VIDEO "/bpp"
-
-#define OGMRIP_GCONF_VIDEO_CAN_CROP          OGMRIP_GCONF_VIDEO "/can_crop"
-#define OGMRIP_GCONF_VIDEO_CAN_SCALE         OGMRIP_GCONF_VIDEO "/can_scale"
-#define OGMRIP_GCONF_VIDEO_MIN_WIDTH         OGMRIP_GCONF_VIDEO "/min_width"
-#define OGMRIP_GCONF_VIDEO_MIN_HEIGHT        OGMRIP_GCONF_VIDEO "/min_height"
-#define OGMRIP_GCONF_VIDEO_MAX_WIDTH         OGMRIP_GCONF_VIDEO "/max_width"
-#define OGMRIP_GCONF_VIDEO_MAX_HEIGHT        OGMRIP_GCONF_VIDEO "/max_height"
-#define OGMRIP_GCONF_VIDEO_EXPAND            OGMRIP_GCONF_VIDEO "/expand"
+#define OGMRIP_GCONF_VIDEO_CODEC             OGMRIP_GCONF_VIDEO "-codec"
+#define OGMRIP_GCONF_VIDEO_PASSES            OGMRIP_GCONF_VIDEO "-passes"
+#define OGMRIP_GCONF_VIDEO_PRESET            OGMRIP_GCONF_VIDEO "-preset"
+#define OGMRIP_GCONF_VIDEO_SCALER            OGMRIP_GCONF_VIDEO "-scaler"
+#define OGMRIP_GCONF_VIDEO_DENOISE           OGMRIP_GCONF_VIDEO "-denoise"
+#define OGMRIP_GCONF_VIDEO_TRELLIS           OGMRIP_GCONF_VIDEO "-trellis"
+#define OGMRIP_GCONF_VIDEO_QPEL              OGMRIP_GCONF_VIDEO "-qpel"
+#define OGMRIP_GCONF_VIDEO_DEBLOCK           OGMRIP_GCONF_VIDEO "-deblock"
+#define OGMRIP_GCONF_VIDEO_DERING            OGMRIP_GCONF_VIDEO "-dering"
+#define OGMRIP_GCONF_VIDEO_TURBO             OGMRIP_GCONF_VIDEO "-turbo"
+#define OGMRIP_GCONF_VIDEO_ASPECT            OGMRIP_GCONF_VIDEO "-aspect_ratio"
+
+#define OGMRIP_GCONF_VIDEO_ENCODING          OGMRIP_GCONF_VIDEO "-encoding"
+#define OGMRIP_GCONF_VIDEO_BITRATE           OGMRIP_GCONF_VIDEO "-bitrate"
+#define OGMRIP_GCONF_VIDEO_QUANTIZER         OGMRIP_GCONF_VIDEO "-quantizer"
+#define OGMRIP_GCONF_VIDEO_BPP               OGMRIP_GCONF_VIDEO "-bpp"
+
+#define OGMRIP_GCONF_VIDEO_CAN_CROP          OGMRIP_GCONF_VIDEO "-can_crop"
+#define OGMRIP_GCONF_VIDEO_CAN_SCALE         OGMRIP_GCONF_VIDEO "-can_scale"
+#define OGMRIP_GCONF_VIDEO_MIN_WIDTH         OGMRIP_GCONF_VIDEO "-min_width"
+#define OGMRIP_GCONF_VIDEO_MIN_HEIGHT        OGMRIP_GCONF_VIDEO "-min_height"
+#define OGMRIP_GCONF_VIDEO_MAX_WIDTH         OGMRIP_GCONF_VIDEO "-max_width"
+#define OGMRIP_GCONF_VIDEO_MAX_HEIGHT        OGMRIP_GCONF_VIDEO "-max_height"
+#define OGMRIP_GCONF_VIDEO_EXPAND            OGMRIP_GCONF_VIDEO "-expand"
 
 #define OGMRIP_GCONF_AUDIO                   "audio"
 
-#define OGMRIP_GCONF_AUDIO_CODEC             OGMRIP_GCONF_AUDIO "/codec"
-#define OGMRIP_GCONF_AUDIO_QUALITY           OGMRIP_GCONF_AUDIO "/quality"
-#define OGMRIP_GCONF_AUDIO_CHANNELS          OGMRIP_GCONF_AUDIO "/channels"
-#define OGMRIP_GCONF_AUDIO_SRATE             OGMRIP_GCONF_AUDIO "/srate"
-#define OGMRIP_GCONF_AUDIO_NORMALIZE         OGMRIP_GCONF_AUDIO "/normalize"
+#define OGMRIP_GCONF_AUDIO_CODEC             OGMRIP_GCONF_AUDIO "-codec"
+#define OGMRIP_GCONF_AUDIO_QUALITY           OGMRIP_GCONF_AUDIO "-quality"
+#define OGMRIP_GCONF_AUDIO_CHANNELS          OGMRIP_GCONF_AUDIO "-channels"
+#define OGMRIP_GCONF_AUDIO_SRATE             OGMRIP_GCONF_AUDIO "-srate"
+#define OGMRIP_GCONF_AUDIO_NORMALIZE         OGMRIP_GCONF_AUDIO "-normalize"
 
 #define OGMRIP_GCONF_SUBP                    "subp"
 
-#define OGMRIP_GCONF_SUBP_CODEC              OGMRIP_GCONF_SUBP "/codec"
-#define OGMRIP_GCONF_SUBP_CHARSET            OGMRIP_GCONF_SUBP "/charset"
-#define OGMRIP_GCONF_SUBP_NEWLINE            OGMRIP_GCONF_SUBP "/newline"
-#define OGMRIP_GCONF_FORCED_SUBS             OGMRIP_GCONF_SUBP "/forced"
-#define OGMRIP_GCONF_SPELL_CHECK             OGMRIP_GCONF_SUBP "/spell_check"
+#define OGMRIP_GCONF_SUBP_CODEC              OGMRIP_GCONF_SUBP "-codec"
+#define OGMRIP_GCONF_SUBP_CHARSET            OGMRIP_GCONF_SUBP "-charset"
+#define OGMRIP_GCONF_SUBP_NEWLINE            OGMRIP_GCONF_SUBP "-newline"
+#define OGMRIP_GCONF_FORCED_SUBS             OGMRIP_GCONF_SUBP "-forced"
+#define OGMRIP_GCONF_SPELL_CHECK             OGMRIP_GCONF_SUBP "-spell_check"
 
 /*
  * Default preferences
Bug-Debian: https://bugs.debian.org/986031
Last-Update: 2021-04-11

--- ogmrip-1.0.1.orig/libogmdvd/ogmdvd-disc.c
+++ ogmrip-1.0.1/libogmdvd/ogmdvd-disc.c
@@ -222,7 +222,7 @@ dvd_reader_get_menu_size (dvd_reader_t *
 
   file = DVDOpenFile (reader, vts, DVD_READ_MENU_VOBS);
   size = DVDFileSize (file);
-  DVDCloseFile (file);
+  if (file) DVDCloseFile (file);
 
   size *= DVD_VIDEO_LB_LEN;
 #else /* HAVE_DVD_FILE_SIZE */

Reply to: