- switch to the upstream patch for #592411 (same effect, but slightly
different)
This commit is contained in:
parent
1c2d68b08f
commit
ead6827240
@ -4,13 +4,51 @@ the desired value from the entry.
|
|||||||
Index: nslcd/attmap.c
|
Index: nslcd/attmap.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- nslcd/attmap.c (revision 1110)
|
--- nslcd/attmap.c (revision 1110)
|
||||||
+++ nslcd/attmap.c (working copy)
|
+++ nslcd/attmap.c (revision 1111)
|
||||||
@@ -254,6 +254,8 @@
|
@@ -251,20 +251,25 @@
|
||||||
MUST_USE const char *attmap_get_value(MYLDAP_ENTRY *entry,const char *attr,char *buffer,size_t buflen)
|
return values[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
-MUST_USE const char *attmap_get_value(MYLDAP_ENTRY *entry,const char *attr,char *buffer,size_t buflen)
|
||||||
|
+const char *attmap_get_value(MYLDAP_ENTRY *entry,const char *attr,char *buffer,size_t buflen)
|
||||||
{
|
{
|
||||||
const char **values;
|
const char **values;
|
||||||
+ if (buflen > 0)
|
+ /* check and clear buffer */
|
||||||
+ buffer[0]='\0';
|
+ if ((buffer==NULL)||(buflen<=0))
|
||||||
|
+ return NULL;
|
||||||
|
+ buffer[0]='\0';
|
||||||
/* for simple values just return the attribute */
|
/* for simple values just return the attribute */
|
||||||
if (attr[0]!='"')
|
if (attr[0]!='"')
|
||||||
{
|
{
|
||||||
|
values=myldap_get_values(entry,attr);
|
||||||
|
- if (values==NULL)
|
||||||
|
+ if ((values==NULL)||(values[0]==NULL))
|
||||||
|
return NULL;
|
||||||
|
strncpy(buffer,values[0],buflen);
|
||||||
|
buffer[buflen-1]='\0';
|
||||||
|
return buffer;
|
||||||
|
/* TODO: maybe warn when multiple values are found */
|
||||||
|
}
|
||||||
|
+ /* we have an expression, try to parse */
|
||||||
|
if ( (attr[strlen(attr)-1]!='"') ||
|
||||||
|
(expr_parse(attr+1,buffer,buflen,entry_expand,(void *)entry)==NULL) )
|
||||||
|
{
|
||||||
|
Index: nslcd/attmap.h
|
||||||
|
===================================================================
|
||||||
|
--- nslcd/attmap.h (revision 1110)
|
||||||
|
+++ nslcd/attmap.h (revision 1111)
|
||||||
|
@@ -86,11 +86,11 @@
|
||||||
|
|
||||||
|
/* Set the attribute mapping of the variable to the value specified.
|
||||||
|
Returns the new value on success. */
|
||||||
|
+MUST_USE const char *attmap_set_mapping(const char **var,const char *value);
|
||||||
|
|
||||||
|
-const char *attmap_set_mapping(const char **var,const char *value);
|
||||||
|
-
|
||||||
|
/* Return a value for the attribute, handling the case where attr
|
||||||
|
- is an expression. */
|
||||||
|
+ is an expression. On error (e.g. problem parsing expression, attribute
|
||||||
|
+ value not found) it returns NULL and the buffer is made empty. */
|
||||||
|
const char *attmap_get_value(MYLDAP_ENTRY *entry,const char *attr,char *buffer,size_t buflen);
|
||||||
|
|
||||||
|
/* Add the attributes from attr to the set. The attr argumenent
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Name: nss-pam-ldapd
|
Name: nss-pam-ldapd
|
||||||
Version: 0.7.5
|
Version: 0.7.5
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: An nsswitch module which uses directory servers
|
Summary: An nsswitch module which uses directory servers
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
@ -157,6 +157,9 @@ fi
|
|||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon May 17 2010 Nalin Dahyabhai <nalin@redhat.com> 0.7.5-3
|
||||||
|
- switch to the upstream patch for #592411
|
||||||
|
|
||||||
* Fri May 14 2010 Nalin Dahyabhai <nalin@redhat.com> 0.7.5-2
|
* Fri May 14 2010 Nalin Dahyabhai <nalin@redhat.com> 0.7.5-2
|
||||||
- don't return an uninitialized buffer as the value for an optional attribute
|
- don't return an uninitialized buffer as the value for an optional attribute
|
||||||
that isn't present in the directory server entry (#592411)
|
that isn't present in the directory server entry (#592411)
|
||||||
|
Loading…
Reference in New Issue
Block a user