view get_path.c @ 7358:bb40478265df

I experienced several segfaults when trying to play (unencrypted) DVDs from harddisk using xine/ogle/mplayer with the respective libdvdnav support feature. I found that while libdvdnav itself may do something wrong by trying to read beyond the end of the files, it was actually the fault of libdvdread that a segfault resulted. The following tiny patch fixes the problem and it seems that libdvdnav can very well live with the "short read" result it gets then - navigation worked fine after applying the patch: patch by Peter Niemayer <niemayer@isg.de> & H}kan Hjort <d95hjort@dtek.chalmers.se>
author arpi
date Tue, 10 Sep 2002 20:33:31 +0000
parents d21bae2028a6
children ad429d617df4
line wrap: on
line source


char *get_path(char *filename){
	char *homedir;
	char *buff;
	static char *config_dir = "/.mplayer";
	int len;

	if ((homedir = getenv("HOME")) == NULL)
		return NULL;
	len = strlen(homedir) + strlen(config_dir) + 1;
	if (filename == NULL) {
		if ((buff = (char *) malloc(len)) == NULL)
			return NULL;
		sprintf(buff, "%s%s", homedir, config_dir);
	} else {
		len += strlen(filename) + 1;
		if ((buff = (char *) malloc(len)) == NULL)
			return NULL;
		sprintf(buff, "%s%s/%s", homedir, config_dir, filename);
	}
	mp_msg(MSGT_GLOBAL,MSGL_V,"get_path('%s') -> '%s'\n",filename,buff);
	return buff;
}