/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2010 The OpenLDAP Foundation.
+ * Copyright 1998-2011 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
bv->bv_val = NULL;
bv->bv_len = 0;
+ } else if ( ber->ber_sos_ptr != NULL ) {
+ /* unmatched "{" and "}" */
+ return -1;
+
} else {
/* copy the berval */
ber_len_t len = ber_pvt_ber_write( ber );
}
/* Did we run out of bytes? */
if ((char *)p == ber->ber_rwptr) {
-#if defined( EWOULDBLOCK )
sock_errset(EWOULDBLOCK);
-#elif defined( EAGAIN )
- sock_errset(EAGAIN);
-#endif
return LBER_DEFAULT;
}
}
}
if ( ber->ber_ptr == ber->ber_rwptr ) {
-#if defined( EWOULDBLOCK )
sock_errset(EWOULDBLOCK);
-#elif defined( EAGAIN )
- sock_errset(EAGAIN);
-#endif
return LBER_DEFAULT;
}
}
/* Not enough bytes? */
if (ber->ber_rwptr - (char *)p < llen) {
-#if defined( EWOULDBLOCK )
sock_errset(EWOULDBLOCK);
-#elif defined( EAGAIN )
- sock_errset(EAGAIN);
-#endif
return LBER_DEFAULT;
}
for (i=0; i<llen; i++) {
ber->ber_rwptr+=res;
if (res<to_go) {
-#if defined( EWOULDBLOCK )
sock_errset(EWOULDBLOCK);
-#elif defined( EAGAIN )
- sock_errset(EAGAIN);
-#endif
return LBER_DEFAULT;
}
done: