@ -53,8 +53,10 @@ static long backlight_get(struct backlight *backlight, char *node)
int fd , value ;
int fd , value ;
long ret ;
long ret ;
if ( asprintf ( & path , " %s/%s " , backlight - > path , node ) < 0 )
str_printf ( & path , " %s/%s " , backlight - > path , node ) ;
if ( ! path )
return - ENOMEM ;
return - ENOMEM ;
fd = open ( path , O_RDONLY ) ;
fd = open ( path , O_RDONLY ) ;
if ( fd < 0 ) {
if ( fd < 0 ) {
ret = - 1 ;
ret = - 1 ;
@ -67,6 +69,9 @@ static long backlight_get(struct backlight *backlight, char *node)
goto out ;
goto out ;
}
}
if ( buffer [ ret - 1 ] = = ' \n ' )
buffer [ ret - 1 ] = ' \0 ' ;
if ( ! safe_strtoint ( buffer , & value ) ) {
if ( ! safe_strtoint ( buffer , & value ) ) {
ret = - 1 ;
ret = - 1 ;
goto out ;
goto out ;
@ -103,7 +108,8 @@ long backlight_set_brightness(struct backlight *backlight, long brightness)
int fd ;
int fd ;
long ret ;
long ret ;
if ( asprintf ( & path , " %s/%s " , backlight - > path , " brightness " ) < 0 )
str_printf ( & path , " %s/%s " , backlight - > path , " brightness " ) ;
if ( ! path )
return - ENOMEM ;
return - ENOMEM ;
fd = open ( path , O_RDWR ) ;
fd = open ( path , O_RDWR ) ;
@ -118,7 +124,8 @@ long backlight_set_brightness(struct backlight *backlight, long brightness)
goto out ;
goto out ;
}
}
if ( asprintf ( & buffer , " %ld " , brightness ) < 0 ) {
str_printf ( & buffer , " %ld " , brightness ) ;
if ( ! buffer ) {
ret = - 1 ;
ret = - 1 ;
goto out ;
goto out ;
}
}
@ -171,7 +178,8 @@ struct backlight *backlight_init(struct udev_device *drm_device,
if ( ! syspath )
if ( ! syspath )
return NULL ;
return NULL ;
if ( asprintf ( & path , " %s/%s " , syspath , " device " ) < 0 )
str_printf ( & path , " %s/%s " , syspath , " device " ) ;
if ( ! path )
return NULL ;
return NULL ;
ret = readlink ( path , buffer , sizeof ( buffer ) - 1 ) ;
ret = readlink ( path , buffer , sizeof ( buffer ) - 1 ) ;
@ -214,11 +222,13 @@ struct backlight *backlight_init(struct udev_device *drm_device,
if ( entry - > d_name [ 0 ] = = ' . ' )
if ( entry - > d_name [ 0 ] = = ' . ' )
continue ;
continue ;
if ( asprintf ( & backlight_path , " %s/%s " , " /sys/class/backlight " ,
str_printf ( & backlight_path , " %s/%s " , " /sys/class/backlight " ,
entry - > d_name ) < 0 )
entry - > d_name ) ;
if ( ! backlight_path )
goto err ;
goto err ;
if ( asprintf ( & path , " %s/%s " , backlight_path , " type " ) < 0 ) {
str_printf ( & path , " %s/%s " , backlight_path , " type " ) ;
if ( ! path ) {
free ( backlight_path ) ;
free ( backlight_path ) ;
goto err ;
goto err ;
}
}
@ -255,7 +265,8 @@ struct backlight *backlight_init(struct udev_device *drm_device,
free ( path ) ;
free ( path ) ;
if ( asprintf ( & path , " %s/%s " , backlight_path , " device " ) < 0 )
str_printf ( & path , " %s/%s " , backlight_path , " device " ) ;
if ( ! path )
goto err ;
goto err ;
ret = readlink ( path , buffer , sizeof ( buffer ) - 1 ) ;
ret = readlink ( path , buffer , sizeof ( buffer ) - 1 ) ;