RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Ralf S. Engelschall
  Root:   /v/rpm/cvs                       Email:  [EMAIL PROTECTED]
  Module: rpm                              Date:   29-Jun-2007 14:28:41
  Branch: HEAD                             Handle: 2007062913284001

  Modified files:
    rpm                     CHANGES
    rpm/lib                 rpmrc.c

  Log:
    Correctly restore SIGILL signal handler in machine detection code.
    
    Submitted by: OpenSUSE via Panu Matilainen at rpm.org
    Obtained from: http://hg.rpm.org/rpm?cs=8a1bbb5918b9

  Summary:
    Revision    Changes     Path
    1.1415      +1  -0      rpm/CHANGES
    2.199       +10 -2      rpm/lib/rpmrc.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1414 -r1.1415 CHANGES
  --- rpm/CHANGES       29 Jun 2007 11:56:06 -0000      1.1414
  +++ rpm/CHANGES       29 Jun 2007 12:28:40 -0000      1.1415
  @@ -1,4 +1,5 @@
   4.5 -> 5.0:
  +    - rse: correctly restore SIGILL signal handler in machine detection 
code. 
       - pmatilaj: nuke antique Red Hat Linux "reference" "baddeps" list (in 
lib/depends.c)
       - rse: allow one to explicitly select the RPM DB API with 
--with-dbapi={db,sqlite}
       - rse: provide automatically Autoconf chosen RPM DB API selection and 
configuration
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmrc.c
  ============================================================================
  $ cvs diff -u -r2.198 -r2.199 rpmrc.c
  --- rpm/lib/rpmrc.c   19 Jun 2007 06:49:49 -0000      2.198
  +++ rpm/lib/rpmrc.c   29 Jun 2007 12:28:41 -0000      2.199
  @@ -1149,19 +1149,27 @@
   {
        int cpu;
        unsigned int tfms, junk, cap, capamd;
  +     struct sigaction oldsa;
        
  +     sigaction(SIGILL, NULL, &oldsa);
        signal(SIGILL, model3);
        
  -     if (sigsetjmp(jenv, 1))
  +     if (sigsetjmp(jenv, 1)) {
  +             sigaction(SIGILL, &oldsa, NULL);
                return 3;
  +     }
                
  -     if (cpuid_eax(0x000000000)==0)
  +     if (cpuid_eax(0x000000000)==0) {
  +             sigaction(SIGILL, &oldsa, NULL);
                return 4;
  +     }
   
        cpuid(0x00000001, &tfms, &junk, &junk, &cap);
        cpuid(0x80000001, &junk, &junk, &junk, &capamd);
        
        cpu = (tfms>>8)&15;
  +
  +     sigaction(SIGILL, &oldsa, NULL);
        
        if (cpu < 6)
                return cpu;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to