| --- a/lib/sysfs_utils.c | 
 | +++ b/lib/sysfs_utils.c | 
 | @@ -22,6 +22,7 @@ | 
 |   */ | 
 |  #include "libsysfs.h" | 
 |  #include "sysfs.h" | 
 | +#include <mntent.h> | 
 |   | 
 |  /** | 
 |   * sysfs_remove_trailing_slash: Removes any trailing '/' in the given path | 
 | @@ -53,6 +54,9 @@ int sysfs_get_mnt_path(char *mnt_path, s | 
 |  { | 
 |  	static char sysfs_path[SYSFS_PATH_MAX] = ""; | 
 |  	const char *sysfs_path_env; | 
 | +	FILE *mnt; | 
 | +	struct mntent *mntent; | 
 | +	int ret; | 
 |   | 
 |  	if (len == 0 || mnt_path == NULL) | 
 |  		return -1; | 
 | @@ -64,12 +68,31 @@ int sysfs_get_mnt_path(char *mnt_path, s | 
 |  		if (sysfs_path_env != NULL) { | 
 |  			safestrcpymax(mnt_path, sysfs_path_env, len); | 
 |  			sysfs_remove_trailing_slash(mnt_path); | 
 | -			return 0; | 
 | +		} else { | 
 | +			safestrcpymax(mnt_path, SYSFS_MNT_PATH, len); | 
 |  		} | 
 | -		safestrcpymax(mnt_path, SYSFS_MNT_PATH, len); | 
 |  	} | 
 |   | 
 | -	return 0; | 
 | +	/* check that mount point is indeed mounted */ | 
 | +	ret = -1; | 
 | +	if ((mnt = setmntent(SYSFS_PROC_MNTS, "r")) == NULL) { | 
 | +		dprintf("Error getting mount information\n"); | 
 | +		return -1; | 
 | +	} | 
 | +	while ((mntent = getmntent(mnt)) != NULL) { | 
 | +		if (strcmp(mntent->mnt_type, SYSFS_FSTYPE_NAME) == 0 && | 
 | +			strcmp(mntent->mnt_dir, mnt_path) == 0) { | 
 | +			ret = 0; | 
 | +			break; | 
 | +		} | 
 | +	} | 
 | +	 | 
 | +	endmntent(mnt); | 
 | + | 
 | +	if (ret < 0) | 
 | +		errno = ENOENT; | 
 | + | 
 | +	return ret; | 
 |  } | 
 |   | 
 |  /** |