--- a/src/vdpau_wrapper.c +++ b/src/vdpau_wrapper.c @@ -301,31 +313,20 @@ { FILE *fp; char buffer[1024]; - int ret, i; - fp = fopen("/proc/self/cmdline", "r"); + fp = fopen("/proc/self/maps", "r"); if (!fp) { return; } - ret = fread(buffer, 1, sizeof(buffer) - 1, fp); - fclose(fp); - if (ret < 0) { - return; - } - /* - * Sometimes the file contains null between arguments. Wipe these out so - * strstr doesn't stop early. - */ - for (i = 0; i < ret; i++) { - if (buffer[i] == '\0') { - buffer[i] = 'x'; - } - } - buffer[ret] = '\0'; - if (strstr(buffer, "libflashplayer") != NULL) { - _running_under_flash = 1; + while( fgets(buffer, sizeof(buffer), fp)) { + if (strstr(buffer, "libflashplayer") != NULL) + _running_under_flash = 1; + break; } + + fclose(fp); + } void init_config(void)