[pve-devel] [PATCH common 1/3] ldap: optionally save group name by attribute

Dominik Csapak d.csapak at proxmox.com
Mon Mar 9 12:47:11 CET 2020


On 3/7/20 7:47 PM, Thomas Lamprecht wrote:
> On 3/6/20 11:05 AM, Dominik Csapak wrote:
>> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
>> ---
>>   src/PVE/LDAP.pm | 9 +++++++--
>>   1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/PVE/LDAP.pm b/src/PVE/LDAP.pm
>> index cb88977..5bf52dd 100644
>> --- a/src/PVE/LDAP.pm
>> +++ b/src/PVE/LDAP.pm
>> @@ -176,7 +176,7 @@ sub query_users {
>>   }
>>   
>>   sub query_groups {
>> -    my ($ldap, $base_dn, $classes, $filter) = @_;
>> +    my ($ldap, $base_dn, $classes, $filter, $attr) = @_;
> 
> call this $group_name_attr
> 

yeah, makes more sense

>>   
>>       my $tmp = "(|";
>>       for my $class (@$classes) {
>> @@ -193,12 +193,14 @@ sub query_groups {
>>   
>>       my $page = Net::LDAP::Control::Paged->new(size => 100);
>>   
>> +    my $attrs = [ 'member', 'uniqueMember' ];
>> +    push @$attrs, $attr if $attr;
>>       my @args = (
>>   	base     => $base_dn,
>>   	scope    => "subtree",
>>   	filter   => $filter,
>>   	control  => [ $page ],
>> -	attrs    => [ 'member', 'uniqueMember' ],
>> +	attrs    => $attrs,
>>       );
>>   
>>       my $cookie;
>> @@ -225,6 +227,9 @@ sub query_groups {
>>   		$members = [$entry->get_value('uniqueMember')];
>>   	    }
>>   	    $group->{members} = $members;
>> +	    if (my $name = $entry->get_value($attr)) {
> 
> what if $attr/$group_name_attr is undef? Seems that get_value may get you at least one
> "Use of uninitialized value in lc" [0]
> 
> [0]: https://github.com/perl-ldap/perl-ldap/blob/master/lib/Net/LDAP/Entry.pm#L117

mhmm, yes seems right, but i did not get a warning here...
better to guard it anyway...

> 
>> +		$group->{name} = $name;
>> +	    }
>>   	    push @$groups, $group;
>>   	}
>>   
>>
> 





More information about the pve-devel mailing list