]> www.vanbest.org Git - sasc-ng.git/commitdiff
nagra 0501: additional checks in Bx processing
authorleslie <unknown>
Sat, 5 Jan 2008 10:52:46 +0000 (11:52 +0100)
committerleslie <unknown>
Sat, 5 Jan 2008 10:52:46 +0000 (11:52 +0100)
systems/nagra/nagra2-0501.c

index 04a0d78aca211db3d0a841417b906dddaed57351..ea76949de0582ba82aa79e5ed55a911d7bdb7656 100644 (file)
@@ -206,6 +206,14 @@ void cN2Prov0501::AddRomCallbacks(void)
 
 int cN2Prov0501::ProcessBx(unsigned char *data, int len, int pos)
 {
+  if(data[pos-1]!=0xBA) {
+    PRINTF(L_SYS_EMU,"%04X: bad nano %02X for ROM 120",id,data[pos-1]);
+    return -1;
+    }
+  if(pos!=(0x93-0x80)) { // maybe exploitable
+    PRINTF(L_SYS_EMU,"%04X: refuse to execute from %04x",id,0x80+pos);
+    return -1;
+    }
   if(Init(id,120)) {
     SetMem(0x80,data,len);
     SetPc(0x80+pos);