This file is indexed.

/usr/include/utilspp/singleton/LifetimeWithLongevity.inl is in libcurlpp-dev 0.7.3-6.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <algorithm>

template<typename T, typename TDestroyer>
void
utilspp::setLongevity(T * obj, unsigned int longevity, TDestroyer d)
{
   using namespace utilspp::PrivateMembers;

   TrackerArray newArray = static_cast<TrackerArray>( 
         std::realloc(mTrackerArray, mNbElements + 1));
   if(newArray == NULL)
   {
      throw std::bad_alloc();
   }

   LifetimeTracker * p = 
	new ConcreteLifetimeTracker<T, TDestroyer>(obj, longevity, d);

   mTrackerArray = newArray;

   TrackerArray pos = std::upper_bound( 
         mTrackerArray, 
         mTrackerArray + mNbElements,
         p,
         &LifetimeTracker::compare);
   std::copy_backward( 
         pos, 
         mTrackerArray + mNbElements, 
         mTrackerArray + mNbElements + 1);

   *pos = p;
   mNbElements++;
   std::atexit(&atExitFunc);
};

template<typename T>
void 
utilspp::LifetimeWithLongevity<T>::scheduleDestruction(T * obj, void (* func)())
{
   utilspp::PrivateMembers::adapter<T> adapter = { func };
   utilspp::setLongevity(obj, getLongevity( obj ), adapter);
}

template<typename T>
void 
utilspp::LifetimeWithLongevity<T>::onDeadReference()
{
   throw std::logic_error("Dead reference detected");
}

template<typename T>
unsigned int 
utilspp::getLongevity(T *)
{
   return 1000;
}