The NetBSD Project

CVS log for src/common/lib/libprop/prop_kern.c

[BACK] Up to [cvs.NetBSD.org] / src / common / lib / libprop

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.25 / (download) - annotate - [select for diffs], Wed Aug 3 21:13:46 2022 UTC (20 months, 1 week ago) by riastradh
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, HEAD
Changes since 1.24: +5 -5 lines
Diff to previous 1.24 (colored)

proplib: Nix trailing whitespace.

Revision 1.24 / (download) - annotate - [select for diffs], Sun Oct 14 17:37:40 2018 UTC (5 years, 6 months ago) by jdolecek
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, is-mlppp-base, is-mlppp, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base, ad-namecache
Changes since 1.23: +2 -4 lines
Diff to previous 1.23 (colored)

remove M_CANFAIL flag for malloc(9) - it was completely ignored, so had
actually no effect

Revision 1.23 / (download) - annotate - [select for diffs], Sun Jan 29 02:29:06 2017 UTC (7 years, 2 months ago) by christos
Branch: MAIN
CVS Tags: tls-maxphys-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-compat-base, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, bouyer-socketcan-base1
Branch point for: phil-wifi, pgoyette-compat
Changes since 1.22: +3 -3 lines
Diff to previous 1.22 (colored)

call the proper size functions

Revision 1.22 / (download) - annotate - [select for diffs], Sun Jan 29 02:07:57 2017 UTC (7 years, 2 months ago) by christos
Branch: MAIN
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored)

missing brace

Revision 1.21 / (download) - annotate - [select for diffs], Sun Jan 29 00:16:42 2017 UTC (7 years, 2 months ago) by christos
Branch: MAIN
Changes since 1.20: +46 -16 lines
Diff to previous 1.20 (colored)

add sized versions of the copyin ioctls

Revision 1.20 / (download) - annotate - [select for diffs], Sun Jan 15 18:15:45 2017 UTC (7 years, 3 months ago) by christos
Branch: MAIN
CVS Tags: bouyer-socketcan-base
Branch point for: bouyer-socketcan
Changes since 1.19: +4 -4 lines
Diff to previous 1.19 (colored)

bump to 128K (because of npf large rules) and return E2BIG.

Revision 1.19 / (download) - annotate - [select for diffs], Mon May 11 16:48:34 2015 UTC (8 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, localcount-20160914
Branch point for: pgoyette-localcount
Changes since 1.18: +4 -1 lines
Diff to previous 1.18 (colored)

Limit size of xml buffer for userland requests (From Mateusz Kocielski)
XXX: pullup-7

Revision 1.18 / (download) - annotate - [select for diffs], Sun Dec 14 23:48:58 2014 UTC (9 years, 4 months ago) by chs
Branch: MAIN
Changes since 1.17: +7 -21 lines
Diff to previous 1.17 (colored)

add a new "fo_mmap" fileops method to allow use of arbitrary uvm_objects for
mappings of file objects.  move vnode-specific details of mmap()ing a vnode
from uvm_mmap() to the new vnode-specific vn_mmap().  add new uvm_mmap_dev()
and uvm_mmap_anon() convenience functions for mapping character devices
and anonymous memory, and replace all other calls to uvm_mmap() with those.
use the new fileop in drm2 so that libdrm can use mmap() to map things
like on other platforms (instead of the ioctl that we have used so far).

Revision 1.17 / (download) - annotate - [select for diffs], Fri Sep 30 22:08:18 2011 UTC (12 years, 6 months ago) by jym
Branch: MAIN
CVS Tags: yamt-pagecache-tag8, yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, yamt-pagecache, tls-maxphys-base, tls-maxphys, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, netbsd-7-base, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, khorben-n900, agc-symver-base, agc-symver
Branch point for: netbsd-7
Changes since 1.16: +144 -55 lines
Diff to previous 1.16 (colored)

Fix an implementation inconsistency with the prop_*_send_syscall() and
prop_*_recv_syscall() functions from proplib(3). They now share the
same logic as the one from prop_*_send_ioctl() functions:
- returns an int
- 0 indicates "no error", otherwise returns the error number (and
set errno)

Many consumers of the prop_*_{ioctl, syscall} expect errno to be set
on error and use err() to display the error message. As such, ensures that
errno gets set before returning from these functions.

prop_*_send_syscall() functions returned a boolean, and now return an int.
Fix all call sites to use the new paradigm (only quota2 is affected in src).

As the prop_*_{send,recv}_syscall() API appeared in -current and is only
used by the recent quota2 code, I am not bumping the lib. The API change
only affects the prop_*_send_syscall() function (recv_syscall()s were
already used correctly), so ensure you are not mixing "old" -current
quota binaries with a new proplib(3) (or the other way around). This
change will be announced via a HEADS-UP and UPDATING.

Does not affect the kernel part of proplib.

Document the correct API in prop_array(3) and prop_dictionary(3).

Thanks to Francois Tigeot for noticing the API inconsistency and
reporting it on tech-kern@.

ok bouyer@.

Revision 1.16 / (download) - annotate - [select for diffs], Thu Jan 20 11:17:58 2011 UTC (13 years, 2 months ago) by bouyer
Branch: MAIN
CVS Tags: cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Changes since 1.15: +5 -5 lines
Diff to previous 1.15 (colored)

prop_*_copyout takes an object as second parameter, not a pointer to object.

Revision 1.15 / (download) - annotate - [select for diffs], Wed Jan 19 20:34:23 2011 UTC (13 years, 2 months ago) by bouyer
Branch: MAIN
Changes since 1.14: +62 -7 lines
Diff to previous 1.14 (colored)

- Implement prop_{array,dictionary}_copyout(), based on
  prop_{array,dictionary}_copyout_ioctl().
- Implement prop_{array,dictionary}_recv_syscall(), which
  takes as parameter the pref we got from kernel and internalize it,
  and unmaps the buffer prop_{array,dictionary}_copyout() mapped for us.
- add a prop_{array,dictionary}_send_syscall() for symetry, which is
  an alias to prop_{array,dictionary}_externalize_to_pref()

Discussed on tech-kern@ and tech-userlevel@

Revision 1.14 / (download) - annotate - [select for diffs], Tue Dec 14 08:04:14 2010 UTC (13 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231
Changes since 1.13: +6 -1 lines
Diff to previous 1.13 (colored)

Use a consistent approach for rump kernel calls made by libs.
Should investigate a dynamic approach in the future.

Revision 1.13 / (download) - annotate - [select for diffs], Sun Oct 11 12:13:45 2009 UTC (14 years, 6 months ago) by bad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, yamt-nfs-mp-base11, yamt-nfs-mp-base10, rmind-uvmplock-base, matt-premerge-20091211, jym-xensuspend-nbase
Changes since 1.12: +1 -3 lines
Diff to previous 1.12 (colored)

Back out previous.  Builds for me and on autobuild cluster.

Revision 1.12 / (download) - annotate - [select for diffs], Sat Oct 10 21:27:46 2009 UTC (14 years, 6 months ago) by christos
Branch: MAIN
Changes since 1.11: +3 -1 lines
Diff to previous 1.11 (colored)

make this compile again.

Revision 1.11 / (download) - annotate - [select for diffs], Sat Oct 10 18:06:54 2009 UTC (14 years, 6 months ago) by bad
Branch: MAIN
Changes since 1.10: +77 -14 lines
Diff to previous 1.10 (colored)

Implement prop_array_externalize_to_pref(), prop_array_copyin(),
prop_dictionary_externalize_to_pref() and prop_dictionary_copyin()
as discussed in the thread:
http://mail-index.netbsd.org/tech-kern/2009/07/29/msg005594.html

Bump libprop shlib minor.

Revision 1.10 / (download) - annotate - [select for diffs], Sun Sep 13 18:45:10 2009 UTC (14 years, 7 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8
Changes since 1.9: +16 -1 lines
Diff to previous 1.9 (colored)

Wipe out the last vestiges of POOL_INIT with one swift stroke.  In
most cases, use a proper constructor.  For proplib, give a local
equivalent of POOL_INIT for the kernel object implementation.  This
way the code structure can be preserved, and a local link set is
not hazardous anyway (unless proplib is split to several modules,
but that'll be the day).

tested by booting a kernel in qemu and compile-testing i386/ALL

Revision 1.9 / (download) - annotate - [select for diffs], Mon Apr 28 20:22:53 2008 UTC (15 years, 11 months ago) by martin
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, yamt-nfs-mp-base2, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, jymxensuspend-base, jym-xensuspend-base, jym-xensuspend, hpcarm-cleanup-nbase
Changes since 1.8: +1 -8 lines
Diff to previous 1.8 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.8 / (download) - annotate - [select for diffs], Thu Aug 16 21:44:07 2007 UTC (16 years, 8 months ago) by joerg
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, matt-armv6-prevmlocking, matt-armv6-nbase, matt-armv6-base, matt-armv6, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base, cube-autoconf-base, cube-autoconf
Branch point for: yamt-pf42
Changes since 1.7: +9 -3 lines
Diff to previous 1.7 (colored)

libprop is currently using a recursive parser. While this is fine for
userland, deeply nested arrays and dictionaries can easily overflow
the kernel stack and thereby force a panic.

Fix the internalizer and prop_object_release to use a separate call
stack and alter the dictionary and array handling to not recurse on
the C stack. The default stack has an inline depth of 16 elements,
which should keep the overhead reasonable.

This issue was found by Pavel Cahyna and Jachym Holecek.

Additionally add a limit for prop_object_copyin_ioctl to prevent user
programs from temporary allocating unbound amount of kernel memory.
Allow malloc to fail so that tight loops of userland processes can't
force panics by exhausting the kernel map.

Tested with the sample exploit of Jachym, his test suite and reviewed
by himself (initial patch), Christos Zoulas and Jason Thorpe.

Revision 1.7 / (download) - annotate - [select for diffs], Tue Nov 28 18:36:26 2006 UTC (17 years, 4 months ago) by cube
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, yamt-idlelwp-base8, vmlocking-base, vmlocking, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup, newlock2-base, netbsd-4-base, netbsd-4-0-RC1, matt-mips64-base, matt-mips64, hpcarm-cleanup
Branch point for: wrstuden-fixsa, netbsd-4
Changes since 1.6: +5 -1 lines
Diff to previous 1.6 (colored)

Add a comment to explain how the value for uaddr is chosen.  Maybe uvm_mmap
should do that instead of sys_mmap...

Revision 1.6 / (download) - annotate - [select for diffs], Tue Nov 28 18:30:47 2006 UTC (17 years, 4 months ago) by cube
Branch: MAIN
Changes since 1.5: +7 -3 lines
Diff to previous 1.5 (colored)

In _prop_object_copyout_ioctl, uaddr was not initialised, although it is
used by uvm_mmap() as a hint for the virtual address to map memory to.  As
a consequence, it tended to fail a lot on some architectures.

We cannot use 0, so instead use the value that would have been used if we
were calling mmap(2) with 0 as the first argument.

Fixes PR#34639 by xtraeme@.

Revision 1.5 / (download) - annotate - [select for diffs], Thu Oct 26 18:51:21 2006 UTC (17 years, 5 months ago) by thorpej
Branch: MAIN
Branch point for: newlock2
Changes since 1.4: +152 -42 lines
Diff to previous 1.4 (colored)

Add prop_array_t support to prop_kern.

Revision 1.4 / (download) - annotate - [select for diffs], Fri Sep 22 23:58:36 2006 UTC (17 years, 6 months ago) by dogcow
Branch: MAIN
CVS Tags: yamt-splraiseipl-base2
Changes since 1.3: +2 -1 lines
Diff to previous 1.3 (colored)

unbreak kernel builds from the last fix

Revision 1.3 / (download) - annotate - [select for diffs], Fri Sep 22 19:46:21 2006 UTC (17 years, 6 months ago) by dbj
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2 (colored)

protect include of sys/mman.h when building _KERNEL or _STANDALONE

Revision 1.2 / (download) - annotate - [select for diffs], Fri Sep 22 04:20:23 2006 UTC (17 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.1: +120 -52 lines
Diff to previous 1.1 (colored)

Alter the protocol impemented by prop_kern to allow for bi-directional
plist-based messages and to eliminate looping previously required to
receive a plist from the kernel:

- prop_dictionary_copyin_ioctl() and prop_dictionary_copyout_ioctl()
  now take the cmd argument rather than the file open flag.  The
  read-ness or write-ness of an ioctl command is checked by these
  routines to ensure that information is being passed to/from the
  userland component properly.

- prop_dictionary_copyout_ioctl() now allocates the memory for the
  XML plist on behalf of the userland component by way of uvm_mmap().
  The XML plist is copied out to the newly-mapped anonymous region,
  and the pointer returned via the plistref.

- prop_dictionary_recv_ioctl() is responsible for munmap()'ing the
  region after parsing the XML plist into internal represenatation.

- A new prop_dictionary_sendrecv_ioctl() is added, allowing user space
  code to send a dictionary to the kernel and receive one back as a
  reply.


Update users of prop_kern for the API changes (Bluetooth).

This constitutes an ABI / protocol change -- but this will also be put
into NetBSD 4.0 so that the first proplib release will implement the new
scheme.

Revision 1.1 / (download) - annotate - [select for diffs], Wed Jul 5 21:46:10 2006 UTC (17 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: yamt-splraiseipl-base, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, abandoned-netbsd-4-base, abandoned-netbsd-4

Add kernel and user space parts of a protocol for sending property lists
to / from the kernel using ioctls.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>