Ali-Babá e os 40 ladrões

Comentário do meu pai hoje:

Se esperta Ali-Babá! Já indiciaram os 40 ladrões.

PHP e Null Bytes issues

  1. if (file_exists(realpath($_GET[‘teste’] . “.php”))){
  2. echo ‘OK’;
  3. }
  4. else{
  5. echo ‘Fail’;
  6. }

Aparentemente esta verificação é bastante segura né?

Infelizmente não. O PHP usa o padrão de strings usado em C (aquelas terminadas com ‘\0′), o que gera um problema bastante conhecido chamado de Null Byte issue [1].

O que acontece se seu $_GET['teste'], aparentemente seguro, tiver um ‘\0′?
Sua função realpath vai verificar apenas o $_GET['teste'] e nem vai saber que existe um “.php”

Faça o teste:

http://localhost/labs/teste.php?teste=/etc/passwd%00
(%00 é o código hexadecimal aceito pelos browsers para o \0)

E o resultado:

OK

[1] http://en.wikipedia.org/wiki/Null_character

Pesquisa de Hardware Br-linux, quesito mobilidade: Vencedor: Ubuntu! Eu já sabia!

Saiu hoje parte do resultado da campanha sobre hardware do Br-Linux. E o quesito foi: Mobilidade.

Vendo os resultados pude constatar uma coisa:  O maior grupo de usuários de notebooks com linux no Brasil (dos que participaram da pesquisa) rodam Ubuntu ou derivados. E a maioria esmagadora roda um debian’s like (debian, ubuntu, Kurumin-nheca).

Fico um pouco triste pois esperava uma melhor classificação do Mandriva. Afinal, o OEM da Positivo é mandriva e estou usando a versão 2007-1 aqui em casa e a qualidade do SO é muito boa.

Mplayer/Totem Crashes… X11 error: BadAlloc

Há um tempo que venho percebendo problemas para executar vídeos com o Totem/Mplayer em meu notebook.

Esta a tentar assistir o vídeo do Marcelo e estes programas insistiam em finalizar sozinhos acusando o erro de alocação de recursos. A mensagem era a seguinte:

MPlayer 2:1.0~rc1-0ubuntu9.1 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Pentium(R) M processor 1.60GHz (Family: 6, Model: 13, Stepping: 8)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
Can’t open joystick device /dev/input/js0: No such file or directory
Can’t init input joystick
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
[Ogg] stream 0: video (Theora v3.2.0), -vid 0
Ogg file format detected.
VIDEO: [theo] 1026×769 24bpp 10.000 fps 0.0 kbps ( 0.0 kbyte/s)
open: No such file or directory
[MGA] Couldn’t open: /dev/mga_vid
open: No such file or directory
[MGA] Couldn’t open: /dev/mga_vid
[VO_TDFXFB] Can’t open /dev/fb0: No such file or directory.
[VO_3DFX] Unable to open /dev/3dfx.
———————————————————
Opening video decoder: [ffmpeg] FFmpeg’s libavcodec codec family
[theora @ 0x8939638]Missing extradata!
Could not open codec.
VDecoder init failed :(
Opening video decoder: [theora] Theora/VP3
VDec: vo config request - 1026 x 769 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO: [xv] 1026×769 => 1026×769 Planar YV12
Selected video codec: [theora] vfm: theora (Theora (free, reworked VP3))
———————————————————
Audio: no sound
Starting playback…
X11 error: BadAlloc (insufficient resources for operation)
MPlayer interrupted by signal 6 in module: vo_check_events
- MPlayer crashed. This shouldn’t happen.
It can be a bug in the MPlayer code _or_ in your drivers _or_ in your
gcc version. If you think it’s MPlayer’s fault, please read
DOCS/HTML/en/bugreports.html and follow the instructions there. We can’t and
won’t help unless you provide this information when reporting a possible bug.

Entrei várias referências a este problema, mas o que resolveu mesmo foi a solução que encontrei no fórum do fedora: Reconfigurar o drive i810, usado pela placa de vídeo, com a opção LinearAlloc.

E o Xorg.conf ficou assim:

Section “Device”
Identifier “Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller”
Driver “i810″
BusID “PCI:0:2:0″
Option “LinearAlloc” “8160″
EndSection

E está pronto. Claro, só vai fucionar para quem usa i810. Mas já ajuda aos paraquedistas que caírem por aqui com o mesmo erro.